繁体   English   中英

Cookies不会删除

[英]cookies won't delete

这是我设置的登录cookie

setcookie('username[0]',$username,time()+(60*60*24*365));
setcookie('username[1]',$userid,time()+(60*60*24*365));
setcookie('username[2]',$subscribed,time()+(60*60*24*365));         
setcookie('password',md5($password),time()+(60*60*24*365));
setcookie('admin',$admin,time()+(60*60*24*365));

这是我的注销功能

function logout($return) {

         setcookie('username[0]', '', time()-(60*60*24*365));
    setcookie('username[1]', '', time()-(60*60*24*365));
    setcookie('username[2]', '', time()-(60*60*24*365));
    setcookie('password', '', time()-(60*60*24*365));
    setcookie('admin', '', time()-(60*60*24*365));


      header( 'Location: ' . $return );

    echo "<div class='fontall'><span class='fontdif'>You've been logged out.  </span><a href='$return'>Click Here</a><span class='fontdif' to return</span></div>";

        }

当我尝试注销并返回该页面时,我仍处于登录状态? 我做错了什么?

如果出现“无法修改标题”错误,则意味着您在setcookie之前回显了某些内容。 在任何内容回显之前, setcookie必须执行。

与其他标头一样,必须在脚本的任何输出之前发送cookie(这是协议限制)。 这要求您在所有输出(包括和标记以及任何空格)之前都先调用此函数。

    // 1. Find the session
    session_start();

    // 2. Unset all the session variables
    $_SESSION = array();

    // 3. Destroy the session cookie
    if(isset($_COOKIE[session_name()])) {
        setcookie(session_name(), '', time()-42000, '/');
    }

    // 4. Destroy the session
    session_destroy();

那应该工作。 可能..u没有破坏会话?

代码似乎没有错-他们应该删除Cookie。 您确定cookie不会删除吗? 注销后,请尝试检查cookie是否存在。 您可以使用显示活动cookie的浏览器来执行此操作。 或者,您可以尝试使用PHP阅读cookie。

其次,您如何检查会话是否仍然有效? 您可以分享这段代码吗? 您在哪里检查会话-您是否在所有页面上都进行会话?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM