注销后询问cookie

时间:2016-02-08 13:49:44

标签: php cookies

我在PHP中调用$_COOKIE函数后立即尝试访问cookie的值(使用setcookie())。当我这样做时,登录后$_COOKIE[$cookiename]没有设置。为什么呢?

if(isset($_SESSION)){
    $_SESSION['email']=$username;
    $_SESSION['id']=$query['id'];
    $_SESSION['name']=$query['name'];
    $_COOKIE[$cookiename]=$query['name'];


    $cookiename="user";
    $cookie_value = "John Doe";
    setcookie($cookiename,$cookie_value, time() + (86400 * 30),"/");
    if (!$session->Check()){
        echo $cookiename ;
    }else {
        echo $_COOKIE[$cookiename];
    }

1 个答案:

答案 0 :(得分:2)

  1. 这是因为当您调用setcookie()时,您将cookie附加到当前响应(当前请求完成时)。

  2. $ _COOKIE将在已经设置了cookie标头的请求时有一个值,即cookie被发送到服务器。

  3. 所以,当只有#1发生时你在$ _COOKIE中没有任何东西,但是一旦#2发生,你将在$ _COOKIE中有一个值

    编辑:手册中提到了您需要的几乎所有内容 http://php.net/manual/en/function.setcookie.php

      

    setcookie()定义了一个与其余部分一起发送的cookie   HTTP标头一旦设置了cookie,就可以访问它们   下一页加载$ _COOKIE数组。 Cookie值也可能   存在于$ _REQUEST。