2011-02-02 112 views
0

我有一个网站,可以选择“保持登录状态”。当选项被选中,我设置cookies像这么一月份:PHP Cookie不会删除!

$expire = time()+60*60*24*30; 
setcookie("user_ID", $userid, $expire); 
setcookie("u", $username, $expire); 
etc. 

然后,我有一个注销脚本杀饼干,其值设置为null,到期日期一小时过去。

$expire2 = time()-60*60; 
foreach ($_COOKIE as $c_id => $c_value) 
{ 
    setcookie($c_id, NULL, $expire2); 
} 

当我运行注销脚本,萤火虫这样说:

的Set-Cookie 用户ID =删除; expires =星期二,02-Feb-2010 16:43:15 GMT u =删除; expires =星期二,02-Feb-2010 16:43:15 GMT

但是,当我回到主或其他页面时,我仍然登录!我设置cookie的唯一时间是当我运行登录脚本时,为什么他们不会死?与格林尼治标准时间背后的当地时间有什么关系?

+2

您是否使用基于$ _SESSION的cookie来维护身份验证? – 2011-02-02 16:55:13

回答

3

没关系。就像我犯的大多数错误一样,这个错误非常愚蠢。我正在设置路径cookie,而我的注销脚本与登录脚本位于不同的目录中。我已将它们设置为域cookie,现在它们正在工作。