加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

在页面离开时销毁PHP会话

发布时间:2020-12-13 13:16:35 所属栏目:PHP教程 来源:网络整理
导读:当用户离开特定页面时,我需要销毁会话.我在页面的末尾使用了session_destroy(),但它对我来说不可行,因为我的页面有分页.我的页面是:abc.php?page = 1或abc.php?page = 2或abc.php?page = 3. 因此,当用户离开abc.php页面时,我需要销毁一个会话.如何在不使
当用户离开特定页面时,我需要销毁会话.我在页面的末尾使用了session_destroy(),但它对我来说不可行,因为我的页面有分页.我的页面是:abc.php?page = 1或abc.php?page = 2或abc.php?page = 3.

因此,当用户离开abc.php页面时,我需要销毁一个会话.如何在不使用cookie的情况下完成?

当用户离开页面时执行某些操作是错误的方法,因为您不知道用户是否将导航到整个不同的页面(例如,为了参数而说contact.php)或者他/她将只是去abc.php的下一页,正如Borealid所指出的,如果没有JS,你就无法做到.相反,你可以简单地添加一个检查,看看用户是否来自abc.php:

首先,在您的abc.php文件中,在$_SESSION数组中设置一个唯一变量,该变量将充当用户在此页面上的标记:

$_SESSION['previous'] = basename($_SERVER['PHP_SELF']);

然后,在任何输出之前在所有页面上添加它以检查用户是否来自abc.php:

if (isset($_SESSION['previous'])) {
   if (basename($_SERVER['PHP_SELF']) != $_SESSION['previous']) {
        session_destroy();
        ### or alternatively,you can use this for specific variables:
        ### unset($_SESSION['varname']);
   }
}

这样,只有当用户来自abc.php且当前页面不同时,才会销毁会话(或特定变量).

我希望我能够清楚地解释这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读