今天我遇到了一个奇怪的问题。我有一个代码,有时会在cookie中写一些东西,有时会覆盖它。
当该cookie不存在时,我的代码也能正常工作。我的意思是,当我清除所有浏览器的cookie并执行我的代码时,一切都很好。但在不知名的时候,那个cookie将是不变的,固定的和坚定的。我的意思是它不会再被覆盖,甚至不会被取消。
这是我的代码:(但它起初完全有效)
.
.
if( isset( $_GET['u'] ) && ( $_GET['u'] == 'true' || $_GET['u'] == 'false' ) ){
if( isset($_COOKIE['qanda_unanswered_status']) ) {
if ( $_COOKIE['qanda_unanswered_status'] != $_GET['u'] ){
setcookie("qanda_unanswered_status", $_GET['u'], 2147483647);
}
} else {
setcookie("qanda_unanswered_status", $_GET['u'], 2147483647);
}
}
.
.
if (isset($_GET['u']) && in_array($_GET['u'], ['true', 'false']) && (!isset($_COOKIE['qanda_unanswered_status']) || $_COOKIE['qanda_unanswered_status'] != $_GET['u']) ) {
setcookie("qanda_unanswered_status", $_GET['u'], 2147483647);
$_COOKIE['qanda_unanswered_status'] = $_GET['u'];
}
.
.
这都是关于cookie的。无论如何,你有任何线索,我该如何调试这个问题?什么时候cookie永远不变?我的意思是即使unset($_COOKIE['sth'])
也无法销毁它。
你对这样的问题有什么线索吗?
答案 0 :(得分:2)
您无法使用unset()
删除Cookie,您需要设置过去的过期时间,例如:
setcookie("qanda_unanswered_status", "", time() - 3600); // one hour ago
然后将在浏览器上删除cookie。