我目前正在开发一个小网站,我必须在其上创建一个帐户创建系统。为了知道用户是否已经连接,我想使用cookies,因为这看起来是最简单的方式。但是,在检查了php.net和其他一些论坛上的官方文档后,我仍然无法创建我的cookie。这是我的代码:
2007-12-05
因此该页面确实提醒我&Cookie失败'。
感谢所有帮助过我的人! :)
答案 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>";
}