2012-07-24 77 views
0

我在本地windows xp pc上運行xampp 1.7.3。 phpinfo()確認會話已啓用。本地主機上使用xampp的PHP會話

在 '的login.php' 我不得不以下代碼:

session_start(); 
$_SESSION['user'] = "user"; 
//var_dump($_SESSION); 
header("Location: index.php"); 

在 '的index.php' 我有這樣的代碼:

session_start(); 
var_dump($_SESSION); 

然而,沒有被印刷時,我得到index.php,$ _SESSION信息似乎丟失了(因爲它是在我取消註冊login.php中的var_dump時打印的)。在php.ini中,我檢查了session.save_path。在此路徑中,我可以找到包含存儲在login.php中的會話信息的會話文件。但是,爲什麼會話信息沒有結轉到index.php?這是由於某種原因,因爲我在本地主機上運行?

+0

您是否啓用了錯誤報告? – 2012-07-24 20:33:03

+0

正如已經提到的,確保你可以看到所有的錯誤和警告'error_reporting(E_ALL);'並且確保你的瀏覽器被允許存儲cookie。 – martinstoeckli 2012-07-24 20:48:52

+0

感謝提示。錯誤報告已啓用(error_reporting(E_ALL);)並且瀏覽器也被允許存儲cookie。 – hansi 2012-07-24 21:09:50

回答

0

我不相信這會工作,因爲$ _SESSION工作,標題需要設置。

通過在腳本中間設置header(),可以防止$ _SESSION被完全應用。

所以不要使用header()將位置更改爲index.php。您可以在login.php上放置一個鏈接,點擊該鏈接進入index.php,並查看您的會話是否已正確配置。

你也可以使用JavaScript來改變頁面加載後,只是不使用PHP頭()。

+2

重定向的工作沒有問題,我在我的網站上以這種方式實現了Post-Redirect-Get模式。通常你在重定向之後添加'exit();否則腳本繼續運行。 – martinstoeckli 2012-07-25 07:29:52

相關問題