2011-03-03 39 views
0

我正在用PHP創建一個簡單的用戶可以登錄的網站。如何將會話信息傳遞給php中的子目錄

在根目錄做工精細所有網頁,但是當我試着開始在子目錄網頁上的會話不會讀它

這是我在網頁的開始在子目錄,這正如我所說的根目錄下正常工作的每一頁 -

session_start(); 
if(!session_is_registered(myusername)){ 
header("location: http://www.four-corners.org.uk/welcome.php"); 

幾個人似乎有同樣的問題,但我還沒有找到一個解決辦法

編輯 -

下面是我用來定義「名爲myUsername」,並在會議

// Define $myusername and $mypassword 
$myusername=$_POST['myusername']; 
$mypassword=md5($_POST['mypassword']); 

// Register $myusername, $mypassword and redirect to file "login_success.php" 
session_register("myusername"); 
session_register("mypassword"); 
+0

如果你做了'var_dump($ _ SESSION)',你會得到什麼嗎? – Nalum 2011-03-03 17:11:49

+0

感謝@Nalum,我不確定把var_dump($ _ SESSION)放在哪裏,但是我似乎把它放在任何地方,我想出了錯誤 - 解析錯誤:語法錯誤,D:\ four-corners.org中意外的T_STRING。 uk \ wwwroot \ destination \ australia.php on line 3 – 2011-03-03 18:48:31

+0

你能在「australia.php」的第3行顯示你的代碼嗎? – Nalum 2011-03-04 15:58:06

回答

2

session_is_registered()已被棄用註冊它,不應該被使用的代碼。

相當於「現代」的代碼將

session_start(); 
if (!isset($_SESSION[myusername])) { 
    ... 
} 

請注意,我複製你的「名爲myUsername」完全吻合。如果前面沒有$標誌,則將其視爲常量。如果您尚未使用define()來設置該常量,則它將評估爲null,並在進入session_is_registered之前將其轉換爲空字符串。除非你的會話有一個空字符串作爲鍵的值,否則每次都會重定向。

+0

而你剛剛完全改變了我的答案。在代碼片段後面閱讀段落。 – 2011-03-03 17:15:22

+0

你的意思是說'myusername'被定義爲'defined'('myusername','something')' – 2011-03-03 17:19:47

+0

這就是我寫段落的原因。 OP的代碼片段沒有引號,所以我重複了這一點,並解釋了爲什麼它可能是錯誤的。 – 2011-03-03 17:21:30