setcookie() 函数不工作
setcookie() function not working
我目前正在开发一个小网站,我必须在该网站上创建一个帐户创建系统。为了知道用户是否已经连接,我想使用 cookie,因为这看起来是最简单的方法。但是,在查看 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>";
}}
所以页面确实在提醒我 'Cookie failed'。
感谢所有一直试图帮助我的人! :)
尝试
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>";
}
您可能在 headers 已发送后调用此函数:
试试看是否出现异常:
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();
如果是这样,您将需要重构并确保在发送 headers 之前设置 cookie。
编辑:包含上面的代码是为了更清楚地说明问题 - 它写得不好并且包含很多冗余,因为在发送 headers 时调用 set setCookie 已经抛出异常并可能终止执行.如果不是这种情况,您将需要添加检查并相应地处理它们。
我目前正在开发一个小网站,我必须在该网站上创建一个帐户创建系统。为了知道用户是否已经连接,我想使用 cookie,因为这看起来是最简单的方法。但是,在查看 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>";
}}
所以页面确实在提醒我 'Cookie failed'。
感谢所有一直试图帮助我的人! :)
尝试
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>";
}
您可能在 headers 已发送后调用此函数:
试试看是否出现异常:
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();
如果是这样,您将需要重构并确保在发送 headers 之前设置 cookie。
编辑:包含上面的代码是为了更清楚地说明问题 - 它写得不好并且包含很多冗余,因为在发送 headers 时调用 set setCookie 已经抛出异常并可能终止执行.如果不是这种情况,您将需要添加检查并相应地处理它们。