2011-11-30 63 views
1

檢查遍佈網絡,並嘗試所有可能的解決方案寫在會議上的問題。每一個php頁面創建自己的會話

我有3頁:第1頁從重定向的形式讀取一些數據並在會話中存儲4個變量。這裏是第一個會話ID生成,如果我檢查print_r($ _ SESSION)一切正常。

表格從此頁面提交到第二頁,其中數據存儲在mysql數據庫(這裏沒有會話操作),然後「meta」重定向到第3頁。

在這裏,我嘗試從會話中讀取變量,而是生成一個新的會話。 如果我看看我的服務器tmp目錄,這兩個會話都在這裏。

爲什麼生成新的會話而不是從第一個會話讀取?

  • 試圖頁面編碼:ANSI,UTF-8瓦特BOM,UTF-8 WO BOM
  • 試圖腳本寫在php.net會話手冊

任何其他的想法?


代碼是簡單的會話是這樣的:

1 PHP

session_start(); 
$_SESSION['id'] = $id; 

第2頁試圖

session_start(); 
print_r($_SESSION); 

輸出Array{ id -> }所以只有空瓦里能夠

第3頁

session_start(); 
$id = $_SESSION['id']; 
echo $id; 

和輸出是 ''

+1

發佈您的代碼。我們不能盲目! – Polynomial

+4

檢查會話cookie是否傳播正常,並在每個頁面請求之間保持不變。如果Cookie中的會話ID發生更改,則每次都會收到新會話。同樣,確保所有頁面都在執行session_start()。 –

+2

如果第2頁上的「沒有會話操作」意味着你沒有調用'session_start()' - 那就是你的問題。 – Narf

回答

1

看起來你設置$ _SESSION [ '身份證']空與

$_SESSION['id'] = $id; 

事業的$ id在腳本中是空的。刪除這一行。

+0

這不是。在我的真實代碼中,我將14個變量放在會話中,全部都是空的,id不是會話標識,而是從用戶讀取的一些產品標識。嘗試了一些其他服務器上的確切代碼,一切都很好。此服務器不報告任何錯誤jst不起作用。這裏測試了一些其他的代碼只有2頁,代碼的作品。 – slejnej

0

我有同樣的問題一段時間,很難搞清楚。我的問題是,我的網站工作了一段時間,會議正常工作,然後所有的突然一切都爆發了。

顯然,你的session_save_path()對我來說是/ var/lib/php5 /,需要有777個chmod權限。我意外地改變了它,徹底打破了會議。

要修復,只需在linux上執行sudo chmod -R 777 /var/lib/php5/(或任何你的session_save_path())。

但會議的問題是非常奇怪的,可能是由無數的原因造成的...