使用元刷新强制销毁 PHP 会话

问题描述

我进行了广泛的搜索,虽然我发现了许多关于管理 PHP 会话过期时间的问题,但我没有发现与我提出的方法有关。我有工作代码,但想通过这个社区传递它,看看是否有任何不可预见的问题或潜在的漏洞利用。提前感谢您的反馈。

基本上,一旦设置了购物车会话,页面将开始每 10 分钟不活动刷新一次。一旦总运行时间(自设置会话以来)超过 30 分钟,用户将被重定向一个破坏所有会话的页面

if (isset($_SESSION["shopping_cart"])) {

    echo '<Meta http-equiv="refresh" content="600" />';

    if (!isset($_SESSION['timer'])) {
        $_SESSION['timer'] = time();
    }

    $Now = time();
    $elapsed = $Now - $_SESSION['timer'];

    if ($elapsed > 1800) {
        header('Location: session_reset.PHP');
        exit();
    }

}

解决方法

我没有发现您的代码有问题,它每 10 分钟检查一次会话时间是否超过 30 分钟,以及是否有重定向以终止会话。

不知道为什么要这样做?也许将用户购物篮存储在 cookie 或本地存储中,然后终止会话并留下通知 - 嘿,用户很抱歉您的会话超时,但不要担心我们已将您的购物篮保存在这里....

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...