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