setcookie()函数不起作用

时间:2017-11-28 20:28:22

标签: php cookies setcookie

我目前正在开发一个小网站,我必须在其上创建一个帐户创建系统。为了知道用户是否已经连接,我想使用cookies,因为这看起来是最简单的方式。但是,在检查了php.net和其他一些论坛上的官方文档后,我仍然无法创建我的cookie。这是我的代码:

2007-12-05

因此该页面确实提醒我&Cookie失败'。

感谢所有帮助过我的人! :)

2 个答案:

答案 0 :(得分:0)

您可能在已经发送标题后调用此函数:

试试这个,看看你是否得到例外:

function connexionOK() {
    $cookieName = "CookieCo";
    $cookieValue = "true";
    if(headers_sent()){
        throw new Exception('Cannot set cookie, headers already sent');
    }else{
        $isSent = setcookie($cookieName, $cookieValue, time() + 3600, "/");
        if($isSent){
            echo '<script type="text/javascript">';
            echo "alert('Cookie set');";
            echo "</script>";
        }else{
            echo '<script type="text/javascript">';
            echo "alert('Cookie not set');";
            echo "</script>";
        }
    }
}

connexionOK();

如果是这样,您需要重新构建并确保在发送标题之前先设置setcookie。

编辑:包含上面的代码是为了更清楚地说明问题 - 编写得很糟糕,并且包含大量冗余作为调用set setCookie,而发送头文件时已经抛出异常并可能终止执行。如果不是这种情况,则需要添加检查并相应地处理它们。

答案 1 :(得分:-1)

尝试

if(isset($_COOKIE['CookieCo'])){
     echo '<script type="text/javascript">';
     echo "alert('Cookie envoyé');";
     echo "</script>";
  }
  else {
     echo '<script type="text/javascript">';
     echo "alert('Cookie failed');";
     echo "</script>";
  }