2016-08-15 100 views
0

我發現會話變量在大約30-90分鐘後消失。我檢查檢索會話變量之前,該會話通常的方式被啓動:會話變量消失

function chkSsn() { 
    if (session_status() == PHP_SESSION_NONE) 
     session_start(); 
} 

我設置會話變量如下:

function setSsnVar($nm, $vlu) { 
    chkSsn(); 
    $_SESSION[$nm] = $vlu; 
} 

和檢索它們如下:

function ssnVar($nm) { 
    chkSsn(); 
    if (array_key_exists($nm, $_SESSION)) 
     return $_SESSION[$nm]; 
    else 
     return ""; 
} 

我試着在「session_start」之後立即加入以下幾行,但它沒有任何區別:

header("Cache-Control: no-cache"); 
header("Pragma: no-cache"); 

我使用Firefox 48,Apache/2.4.7(Ubuntu)和PHP版本5.5.9-1ubuntu4.19。

+1

也許[這個問題](http://stackoverflow.com/questions/8311320/how-to-change-the-session-timeout-in-php)可能有幫助嗎? – Henders

回答

1

由於php.ini中的設置,您的會話數據可能會在客戶端瀏覽器或服務器中超時。標準設置爲:session.cookie_lifetimesession.gc_maxlifetime。實際上,還有其他重要的設置可以控制會話的生命週期,所以我強烈建議這個article

因此,創建一個簡單的PHP頁面,調用函數phpinfo()PHP Manual - phpinfo並且將輸出您的php設置。你應該能夠從那裏解決問題。