2013-05-28 55 views
0

我遇到了一個奇怪的錯誤,這個錯誤在整個編碼過程中都處於關閉狀態。會話不會保存頁面之間的值

在每一頁上,我在頁面頂部require_once一個authentication.php。

在那裏會是這樣:

if(!isset($_SESSION)) session_start(); 
if(!isset($_SESSION['test'])) 
{ 
    $_SESSION['auth'] = randString(); //this is my own method creating a random auth id 
    $_SESSION['test'] = "Session is set and remembered."; 
} 

但是,我AUTH繼續生成一個隨機ID每次刷新。

圍繞這一點,我發現我的會話保存在cookie的形式「PHPSESSID」,並把它改爲

if(!isset($_SESSION['auth'])) 
{ 
    $_SESSION['auth'] = $_COOKIE['PHPSESSID']; 
} 
else 
{ 
    echo "hi"; 
} 

雖然這改變了我的會話ID更改每次刷新,它從來不迴音「喜」 ,從而得出會話值沒有被存儲的結論。

有誰知道我在做什麼錯?

+0

會話必須啓動頂...... – Haseeb

回答

1

session_start()需要在頁面頂部調用,即使在會話啓動後也是如此。

開頭刪除ifif(!isset($_SESSION))

+0

感謝您的回覆,但似乎並沒有產生任何顯着的變化:( – ohhreeohh

0

如果你不也不會存儲會話變量中的每個頁面的開頭調用session_start()。如果你在很多頁面中包含這些代碼,只需再次調用它應該是安全的。我從來沒有遇到過這樣做的任何問題。只是尼克斯的第一行,並添加session_start()

Sessions