当用户离开特定页面时,我需要销毁会话.我session_destroy()在页面的末尾使用,但它对我来说不可行,因为我的页面有分页.我的页面是:abc.php?page=1或abc.php?page=2或abc.php?page=3.
所以,我需要在用户离开abc.php页面时销毁会话.如何在不使用cookie的情况下完成?
Val*_*sel 19
当用户离开页面时执行某些操作是错误的方法,因为您不知道用户是否将导航到整个不同的页面(例如,为了参数而说contact.php)或者他/她将只是去abc.php的下一页,正如Borealid所指出的,如果没有JS,你就无法做到.相反,你可以简单地添加一个检查,看看用户是否来自 abc.php:
首先,在您的abc.php文件中,在$ _SESSION数组中设置一个唯一变量,该变量将充当用户在此页面上的标记:
$_SESSION['previous'] = basename($_SERVER['PHP_SELF']);
Run Code Online (Sandbox Code Playgroud)
然后,在任何输出之前在所有页面上添加它以检查用户是否来自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']);
}
}
Run Code Online (Sandbox Code Playgroud)
这样,只有当用户来自abc.php 且当前页面不同时,才会销毁会话(或特定变量).
我希望我能够清楚地解释这一点.