无法更新Cookie

时间:2015-05-12 12:51:03

标签: php cookies

我遇到了一个奇怪的问题,我无法更新Cookie。我完全能够阅读并设置它(这是第一次)。然后,每次我尝试更新它(用于注销或更新cookie的信息)都没有任何反应。

基本上我登录时使用此代码

$cookie_time = (3600 * 24 * 30); // 30 days
$cookietime = time() + $cookie_time;
$cookie_name = 'login';
$cookie_value = 'enter';    
setcookie ($cookie_name, 'id='.$selector.'&token='.$token, $cookietime);

我可以完美地设置它。

当我退出时,我使用此代码

$cookie_time = 1; // 1 days
$cookie_name = 'login';
$cookie_value = 'exit'; 
setcookie($cookie_name, $cookie_value, $cookie_time);

Cookie根本没有变化。即使我尝试再次登录而没有注销(我通过代码实现了这一点),cookie也没有改变。看起来无法更新它...我做了很多尝试,但我没有想法如何解决它!是否有可能我的PHP不允许设置已设置的cookie?

2 个答案:

答案 0 :(得分:2)

注意,$ cookie_time应该对应于1970年1月1日的时间戳,而不仅仅是ms的时间。

请参阅http://php.net/manual/fr/function.setcookie.php

$ cookie_time应为:

$cookie_time = time() + (3600 * 24 * 30);

time()函数返回实际时间戳,$ cookie_time现在表示将来的过期日期;)

答案 1 :(得分:0)

来自setcookie docs

  

与其他标题一样,Cookie必须在您的任何输出之前发送   脚本(这是一个协议限制)。这要求你放置   在任何输出之前调用此函数,包括和    标签以及任何空格。

您是否在尝试更新Cookie之前输出任何内容