【发布时间】:2011-09-17 23:02:22
【问题描述】:
这是关于我的一个旧问题的问题:cookie 不会取消设置: cookie wont unset 我在取消设置 cookie 时遇到问题(但它被设置为“正确”),
现在问题解决了; cookie 似乎没有设置
cookie 'set':(不起作用)
setcookie("id",$data['id'], time()+3600*24*30,'/');
setcookie("alias",$data['nombre'], time()+3600*24*30,'/');
cookie 检查:(似乎有效)
function sesion(){
if(isset($_COOKIE['id']) && isset($_COOKIE['alias'])){
$_SESSION['logueado'] = true;
$_SESSION['id'] = $_COOKIE['id'];
$_SESSION['alias'] = $_COOKIE['alias'];
return true; //THIS IS NEVER RETURNING TRUE
}
if(isset($_SESSION['id']) && isset($_SESSION['logueado']) && $_SESSION['logueado'] == true){
return true;
}
else{ return false;
}
}
cookie 未设置:(有效)
function cerrar_sesion(){
session_start();
$_SESSION['logueado']= false;
$_SESSION['id']= NULL;
session_unset();
session_destroy();
setcookie("id",false,time()-3600,"/");
setcookie("alias",false,time()-3600,"/");
unset($_COOKIE['id']);
unset($_COOKIE['alias']);
}
发生的情况是登录仅通过 $_SESSION 起作用,因此在 30 分钟没有活动后,用户不再登录,
知道我做错了什么吗?非常感谢!
【问题讨论】:
-
检查servertime是否正确。
-
它比西班牙晚一小时(其 GMT 和西班牙 GMT 加 1),但我仍然应该设置整个月的 cookie,不是吗?谢谢!
-
如果服务器时间不正确,部分浏览器拒绝设置cookies。
-
回声时间(); == 13084374070。我怎么知道那是几点?顺便说一句,格林威治标准时间加上一个 Mysql NOW(),apache 和 mysql 是同一时间吗?谢谢
-
查看脚本返回的标题。它应该返回有问题的时间。还要检查是否在浏览器中设置了 cookie。
标签: php cookies session-cookies setcookie