我遇到了一个奇怪的问题,我无法更新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?
答案 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)
与其他标题一样,Cookie必须在您的任何输出之前发送 脚本(这是一个协议限制)。这要求你放置 在任何输出之前调用此函数,包括和 标签以及任何空格。
您是否在尝试更新Cookie之前输出任何内容