2016-08-15 97 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设置。你应该能够从那里解决问题。