2011-10-05 98 views
1

我使用會話瓦爾在過去多次,沒有問題,但現在它讓我...

$_SESSION VAR我設置每次都成爲未設置PHP腳本被觸發,但一次只能設置一個變量。

if (!isset($_SESSION['badList'])) { 
    print 'not set - again?'; 
    $_SESSION['badList'][0] = $lineNum; 
} 
else 
{ 
    $_SESSION['badList'][count($_SESSION)] = $lineNum; 
} 

這裏'沒有設置 - 再次?'每次執行合適的操作時都會觸發,即PHP無法找到初始會話變量。當腳本運行時會話緩存似乎完全清除,這會破壞會話點。

我該怎麼辦?非常感謝。

+3

你叫'在session_start()'? – ComFreek

+0

是的,當然了。我之前使用過Sessions,就像我說的 – Alex

+0

確保'session_save_path()'中的路徑是可寫的?並且會話cookie正在設置? – CD001

回答

3

確保您已調用session_start()/etc/php.ini(或系統等效)具有session.save_path組(後容易/var/lib/php/session/)和該目錄是Web服務器可寫(在Linux上它應該是drwxrwx---),並且您的磁盤未滿。如果您的會話正在寫入遠程存儲(數據庫,memcached等),請確保您可以使用您的應用使用的憑據連接到該應用(如果適用)。

編輯:也確保您在您的請求結束通話session_write_close() - 如果你不那麼會話數據可以不被寫入

+0

取決於您的安裝 - 嘗試'找到php.ini' – Andy

+0

或檢查'phpinfo()'哪個給你的路徑以及,如果你沒有shell訪問 – konsolenfreddy

+0

我正在使用默認的MAMP設置..它當然應該默認工作。我在更改'php.ini.default'時遇到了很大的麻煩...... OSX拒絕允許。剛剛檢查了php的信息和會話設置好了... – Alex