Php setcookie()函数不工作

Php setcookie()函数不工作,php,cookies,setcookie,Php,Cookies,Setcookie,我目前正在一个小网站上工作,我必须作出一个帐户创建系统。为了知道用户是否已经连接,我想使用cookies,因为这看起来是最简单的方法。然而,在查看了php.net和其他一些论坛上的官方文档之后,我仍然无法创建cookie。这是我的密码: function connexionOK() { $cookieName = "CookieCo"; $cookieValue = "true"; $isSent = setcookie($cookieName, $cookieValue, time

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

function connexionOK() {
  $cookieName = "CookieCo";
  $cookieValue = "true";
  $isSent = setcookie($cookieName, $cookieValue, time() + 3600, "/");

  if($isSent) {
     echo '<script type="text/javascript">';
     echo "alert('Cookie envoyé');";
     echo "</script>";
  }
  else {
     echo '<script type="text/javascript">';
     echo "alert('Cookie failed');";
     echo "</script>";
  }}
函数connexionOK(){
$cookieName=“CookieCo”;
$cookieValue=“true”;
$isSent=setcookie($cookieName,$cookieValue,time()+3600,“/”);
如果($Isent){
回声';
回音“警报('Cookie emissioné');”;
回声“;
}
否则{
回声';
回显“警报('Cookie失败');”;
回声“;
}}
因此,页面确实在提醒我“Cookie失败”

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

试试看

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>";
  }
if(isset($\u COOKIE['CookieCo'])){
回声';
回音“警报('Cookie emissioné');”;
回声“;
}
否则{
回声';
回显“警报('Cookie失败');”;
回声“;
}

您可能在发送邮件头后调用此函数:

尝试此操作,查看是否出现异常:

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();
函数connexionOK(){
$cookieName=“CookieCo”;
$cookieValue=“true”;
如果(已发送的头){
抛出新异常('无法设置cookie,标头已发送');
}否则{
$isSent=setcookie($cookieName,$cookieValue,time()+3600,“/”);
如果($Isent){
回声';
回显“警报('Cookie set');”;
回声“;
}否则{
回声';
回显“警报('未设置Cookie');”;
回声“;
}
}
}
connexionOK();
如果是这样,您将需要重构并确保在发送头之前设置cookie


编辑:包含上述代码是为了更清楚地说明这个问题-它编写得很糟糕,并且包含大量冗余,因为在发送头时调用set setCookie将引发异常,可能会终止执行。如果情况并非如此,则需要添加检查并相应地进行处理。

手册中:
如果调用此函数之前存在输出,setcookie()将失败并返回FALSE。如果setcookie()成功运行,它将返回TRUE。这并不表示用户是否接受了cookie。
看起来您在调用setCookie()之前已经有了输出。setCookie()对我有用。。。您需要确保在发送任何输出之前调用setcookie,即在添加到John的评论之前没有回声或打印,否则您也不能在同一页面上设置和检查。您必须重新加载页面(无需再次设置)或在其他页面上进行检查。如果您需要保留现有的输出语句,则只能在浏览器收到第一个请求的标题并将cookie发送回第二个请求后,才能使用这些语句处理第二个请求。不是提问者所问的。做或不做,没有“尝试”。一个好的答案总是会有一个解释,说明做了什么以及为什么这样做,不仅是为了OP,而且是为了未来的访客。