PHP – 为什么我不能摆脱这个会话id cookie?
发布时间:2020-05-25 09:42:46 所属栏目:PHP 来源:互联网
导读:我正在尝试排除Web应用程序的注销功能.当您登录时,应用程序会为其域设置几个Cookie.以下是当前的注销过程: 您单击一个链接,将其发送到注销页面 注销页面运行一个调用session_destroy()的函数,并循环遍历域的所有cookie,并将其设置为过期(见下面的代码) 然后
|
我正在尝试排除Web应用程序的注销功能.当您登录时,应用程序会为其域设置几个Cookie.以下是当前的注销过程: >您单击一个链接,将其发送到注销页面 在此过程结束时,所有其他Cookie未设置,但PHPSESSID Cookie仍然存在,具有相同的值,并且仍设置为在会话结束时到期. 我在这里缺少什么? 以上是我上面提到的注销功能: function log_out_current_user() {
// Destroy the session
if (isset($_SESSION)) {
session_destroy();
}
// Expire all of the user's cookies for this domain:
// give them a blank value and set them to expire
// in the past
if (isset($_SERVER['HTTP_COOKIE'])) {
$cookies = explode(';',$_SERVER['HTTP_COOKIE']);
foreach($cookies as $cookie) {
$parts = explode('=',$cookie);
$name = trim($parts[0]);
setcookie($name,'',time()-1000);
setcookie($name,time()-1000,'/');
}
// Explicitly unset this cookie - shouldn't be redundant,// but it doesn't hurt to try
setcookie('PHPSESSID',time()-1000);
}
}
您没有使用与创建的参数相同的参数来删除它.使用
session_get_cookie_params获得那些.为了便于携带,您应该通过
session_name获取cookie的名称.这是一个小脚本:
$params = session_get_cookie_params(); setcookie(session_name(),$params['path'],$params['domain'],$params['secure'],isset($params['httponly'])); (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
