2010-07-04 62 views
1

我遇到問題,無論如何不能輕視。

我有三個文件 - index.phpadmin.phppost.php

index.php我有

<? 
session_start(); 
$_SESSION['login11_error'] = 'yes'; 
if(verifying username and password here, if they correct) 
{ 
    $_SESSION['login11_error'] = 'no'; 
    header('Location: admin.php'); 
} 
?> 

admin.php我有

<? 
session_start(); 
<form action="post.php" method="post"> 
... 
?> 

和finaly在post.php

<? 
session_start(); 
some functions here... 
header("location:admin.php"); 
?> 

,但是當它從post.php重定向到admin.php失去它的$_SESSION['login11_error']值。

有什麼想法?

謝謝...

UPDATE

固定。

因爲我只是在這裏顯示腳本的結構,我在我的問題中有一個錯誤。

後PHP是在另一個文件夾,然後index.php文件和admin.php的,它在/folder1/folder1_1/post.php

在post.php中我寫header('Location: http://bs.am/admin.php")

,當我將其更改爲header('Location: ../../admin.php")它開始工作。

難以理解的行爲對我來說,但工程:)

+0

會話ID傳遞的方式如何? – Gumbo 2010-07-04 19:38:37

+0

@Gumbo對不起?不明白...什麼ID? – Simon 2010-07-04 19:46:38

+0

當我在'post.php'中打印'$ _SESSION [login11_error]'的值時,它顯示正常,所以我無法理解這是什麼問題。 – Simon 2010-07-04 19:56:46

回答

1

手動設置session_name('MySESS');我在寫標題( '位置:http://bs.am/admin.php「)

,當我將其更改爲標題(' 位置:../。 ./admin.php「)它開始工作。

對我來說不可理解的行爲,但是工作:)

2

Syom,

我看不出有什麼明顯的錯誤與示例代碼。

如果從index.php到admin.php的重定向工作(保留了你的會話變量),那麼post.php中一定會有些棘手的事情發生。你可以註釋掉你在post.php中的所有代碼,並簡單地重定向到admin.php?也就是說,post.php中只包含:

<? 
header('Location: admin.php'); 
?> 

如果echo $_SESSION['login11_error'];(在admin.php文件後您start_session(當然))打印的東西,在post.php中開始取消註釋項目。

如果您處於靜止狀態,請複製http://www.php.net/manual/en/function.session-start.php中的示例,並確保它適用於您。

+0

我嘗試刪除'post.php'中的所有數據。什麼是奇怪的 - 我有post.php中的變量正確(我嘗試打印它那裏),但是當它重定向到admin.php時,它刪除它的值... – Simon 2010-07-04 20:17:10

+0

Syom, 必須有一些事情正在進行在post.php中,因爲在index.php(header('Location:admin.php');)中使用的重定向邏輯有效(對吧?)。 – labratmatt 2010-07-04 20:26:42

+0

我修復它,看到更新。但我覺得很奇怪的行爲。爲什麼我不能在頭部寫入整個網址? – Simon 2010-07-04 20:33:14

0

嘗試之前在post.php中每session_start()