题
我在 php 中使 cookie 过期时遇到问题。这是我的代码:
<?php
setcookie('reitinvestor_user', 'null', time()-3600,'',$_SERVER['SERVER_NAME']);
setcookie('reitinvestor_pass', 'null', time()-3600,'',$_SERVER['SERVER_NAME']);
echo '<pre>'; print_r($_COOKIE); echo '</pre>';
exit;
?>
每次我点击刷新,我都会得到这个结果:
Array
(
[_csuid] => 47dae7b6cd2d9e89
[reitinvestor_user] => john
[reitinvestor_pass] => 1f3870be274f6c49b3e31a0c6728957f
[PHPSESSID] => 6027e370abad115e35b54b0be76befc8
)
我可以使用不同的键值执行 setcookie 并使它们过期。我似乎无法为 reitinvestor_user 和 reitinvestor_pass 执行此操作。怎么了?
解决方案
您是否检查过您是否在同一域和路径中更改cookie?
…]用户代理拒绝cookie(不得存储其信息),如果以下任何一个是正确的:
路径属性的值不是请求 - uri的前缀。
域属性的值不包含嵌入的点或不以点开头。
请求 - 主机的值不符合域属性。
请求主机是FQDN(不是IP地址),并且具有HD形式,其中D是域属性的值,H是一个包含一个或多个点的字符串。
— RFC 2109
不隶属于 StackOverflow