PHP:Cookie没有取消设置

时间:2011-10-01 15:25:00

标签: php cookies web

<?
if($_POST["Login"])
{
    if (GetRightPassword($_POST["emaillogin"],$_POST["passwordlogin"]))
    {
        $_SESSION["email"] = $_POST["emaillogin"];
        $_SESSION["password"] = $_POST["passwordlogin"];
        echo "Keeping logged in: ".$_POST["keeploggedin"];
        if ($_POST["keeploggedin"])
        {
            setcookie("email", $_POST["emaillogin"], time()+60*60*24*365); 
            setcookie("password", $_POST["passwordlogin"], time()+60*60*24*365);
        }
    }
    else
    {
        echo "Invalid username/password!";
    }
}

if($_POST["Logout"])
{
    $_SESSION["email"] = null;
    $_SESSION["password"] = null;
    setcookie("email", "", time()-900000); 
    setcookie("password", "", time()-900000);
}

echo $_COOKIE["email"];
?>

这是唯一的代码(据我所知,我在6个月之前编写了最小代码,但我很确定没有更多代码)写入cookie或会话。

当我点击注销时,它会使会话变量为空,所以当页面加载时,我已经注销 - 再次更改页面或刷新,然后我又重新登录。

任何想法为什么?我改变页面时没有发送登录,所以我不知道为什么。

如果有帮助,echo $ _COOKIE [“email”];即使只是将电子邮件设置为“”,也​​可以回复您的电子邮件。

修改

我刚刚找到了与此相关的更多代码。

此代码在 代码之前运行。

if(isset($_COOKIE["email"]))
{
$_SESSION["email"] = $_COOKIE["email"];
$_SESSION["password"] = $_COOKIE["password"];
}

1 个答案:

答案 0 :(得分:1)

在所有Cookie中设置路径和域。这可以确保它不像with和withoud www

查看文档如何执行此操作:http://nl2.php.net/setcookie

这可能是您的问题的根本原因