即使用户关闭选项卡,PHP 会话也不应过期,直到用户单击注销


PHP Session should not expire even if user close the tab till user clicks on logout

当我单击注销或关闭选项卡时,我有注销页面,会话被销毁。我希望如果用户忘记单击注销,并且如果用户在 4-5 天后访问该站点,会话仍应继续。

我有以下注销脚本:

<?php
session_start();
session_regenerate_id(true);
unset($_SESSION['uid']);
unset($_SESSION['uname']);
session_destroy();
header("location:http://shopeeon.com/");
?>

您需要在 PHP 配置文件中更改会话超时的值。不要忘记重新启动Apache。查看此答案.

如果您希望

您的用户在关闭浏览器(并且会话死亡(后重新登录,那么您需要使用 cookie 来安全地识别用户。

在这里搜索一些类似的问题;示例

  • 保持用户登录的正确和安全/可靠的方法是什么?PHP && MYSQL
  • PHP Cookie 以保持用户登录 - 这是否足够安全?

我在根中使用了这个 htaccess:

<IfModule mod_php5.c>
    #Session timeout
    php_value session.cookie_lifetime 31536000
    php_value session.gc_maxlifetime 31536000
</IfModule>