2011-11-27 153 views
1

我目前在PHP中面臨一個奇怪的問題。PHP會話奇怪的行爲

我有兩個腳本,它們是「主頁」,index.php和ajax.php,它是一個由AJAX請求調用的腳本。

的index.php

session_start(); 
if ($_SESSION['test'] == "hello") { 
    $_SESSION['test'] = "bleh"; 
    die(); 
} 

echo "here"; 

ajax.php

session_start(); 
$_SESSION['test'] = "hello"; 

所以我去的index.php,然後就ajax.php Ajax調用,我刷新索引。 PHP,我實際上期望有一個空白頁面,然後刷新並「打印在這裏」;但實際上腳本永遠不會死亡,就像$ _SESSION ['test']從未設置爲「hello」一樣。

任何想法?謝謝。

+0

您開始會話兩次......您需要在'ajax.php'中刪除對'session_start'的調用。 – Yahia

+0

我添加if(!session_id())session_start();在ajax.php中,仍然是同樣的問題。 – spacenick

+0

在index.php中的「session_start()」之後打印出$ _SESSION數組,以便在進行ajax調用後查看它是否爲空。 – Eugene

回答

0

我在我的系統中試過這個,它按預期工作。嘗試直接調用ajax.php頁面,看看你是否得到預期的結果,然後調用第一個。

另請參閱您的瀏覽器是否獲取cookie集並確保它不被忽略,以便每次會話開始時都會獲得新會話。

+0

我在兩個腳本上都打印了session_id(),這是相同的,所以我猜測cookie是正常的 – spacenick

+0

也許你可以打印你的整個腳本 - 它會給我們更多上下文合作。你也可以使用螢火蟲,看看你的腳本調用是如何完成的。 – Knubo