0

我在使用 Cookie 时遇到了一些问题是 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);

}

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

4

1 回答 1

0

确保在此函数中以及在擦除 cookie 的任何位置对 $host 进行相同的计算。

server.com如果您希望 cookie 在and之间共享,请www.server.com确保$host以 a 开头.,例如.server.com

于 2013-05-03T23:12:27.643 回答