PHP中的cookie问题并非在所有域中都未解决

时间:2013-05-03 17:17:32

标签: php cookies setcookie

我遇到的问题是PHP是PHP。在Localhost上,cookie似乎没有被删除,用户仍然通过WWW.somesite.com登录,但注销在SOMESITE.com上有效。

这是处理正在设置/取消设置的cookie的代码:

public static function cookie($name, $value){

    $host = apache_request_headers();

    $host = $host['Host'];

    $host = explode('.', $host);

    $count = count($host);

    if($count >= 2) {
        $host = ($host[0] == 'test') ? 'test.' . $host[$count - 2] . "." . $host[$count - 1] : $host[$count - 2] . "." . $host[$count - 1];
    } else {
        $host = $host[0];
    }

    //$host = explode(':', $host);
    //$host = $host[0];

    //Core::prnt($host);

    if($value === NULL) {

        setcookie($name, $value, time() - Options::getSetting('U_SESSION_TIMEOUT'), '/', $host);

        Core::prnt($_COOKIE);

        return;

    }

    setcookie($name, $value, time() + Options::getSetting('U_SESSION_TIMEOUT'), '/', $host);

}

关于我做错的任何想法都会非常有帮助。

1 个答案:

答案 0 :(得分:0)

确保您在此功能中的$ host计算结果与您删除Cookie的位置相同。

如果您希望在server.comwww.server.com之间共享Cookie,请确保$host.开头,例如.server.com