会话超时时间 - 由服务器设置?

时间:2012-11-15 12:24:49

标签: php session zen-cart

我正在使用zen-cart,我想拥有它以便客户会话在24分钟后不会过期,这似乎是默认的。

在Google搜索和浏览zen-cart网站后,似乎没有人对此有任何答案(关于如何更改管理员注销会话时间的大量答案 - 我希望人们使用实际网站进行更长时间的会话)。我想这可能是一个安全问题,但我现在已经调查了它并且无法弄清楚代码:

if (IS_ADMIN_FLAG === true) {
    if (!$SESS_LIFE = (SESSION_TIMEOUT_ADMIN > 900 ? 900 : SESSION_TIMEOUT_ADMIN)) {
      $SESS_LIFE = (SESSION_TIMEOUT_ADMIN > 900 ? 900 : SESSION_TIMEOUT_ADMIN);
    }
} else {
    if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) {
      $SESS_LIFE = 1440;
    }
}

我已经尝试将1440改为86400(一天),但这似乎不起作用。我不完全确定该行

if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) {

做到了!并且只有一个=之后。我想这是问题所在?谁能开导我?

1 个答案:

答案 0 :(得分:0)

if (!$SESS_LIFE = get_cfg_var('session.gc_maxlifetime')) {
    $SESS_LIFE = 1440;
}

从运行时配置中获取 session.gc_maxlifetime 的值,并将其设置为$SESS_LIFE

如果$SESS_LIFE的值为零,则会执行$SESS_LIFE = 1440;


在内部更改此超时:php.ini或使用

ini_set('session.gc_maxlifetime', 86400);

或者在.htaccess中,您可以添加以下行:

php_value session.gc_maxlifetime 86400

参考:get_cfg_var