为什么我打电话的时候:
<?php
setcookie("PHPSESSID", "", time() - 3600);
?>
在会话cookie上它不会被删除但是如果我在另一个cookie上调用它会被删除吗?
这完全没问题:
<?php
setcookie("tom", "tom", time() - 3600);
?>
但上面的会话cookie示例没有。
我在google chrome和firefox上试过这个,但在查看头文件时仍然会得到相同的结果。
这是会话cookie的输出:
Array
(
[_GET] => Array
(
)
[_POST] => Array
(
)
[_COOKIE] => Array
(
[PHPSESSID] => v61njiklq3kd5koc6i8i7otab7
)
[_FILES] => Array
(
)
[GLOBALS] => Array
*RECURSION*
)
答案 0 :(得分:2)
setcookie( session_name(), "", time()-3600, '/');
作品!删除会话cookie的缺失部分是函数&#39; setcookie()&#39;的最后一个参数。如在&#39; /&#39;。
答案 1 :(得分:0)
这是因为,当您调用脚本删除cookie时,会话处理程序实际上会将会话cookie更新为“在线”。你必须销毁会话,而不仅仅是(尝试)删除cookie。
答案 2 :(得分:0)
你不应该像这样破坏会话,而应该使用破坏会话的本地函数session_destroy()
。
通常,PHPSESSID cookie将在下次调用session_start()时重新生成,这可能就是为什么你似乎没有删除cookie。
答案 3 :(得分:0)
要删除 session_start() 创建的“PHPSESSID”cookie,请将其设置为空。
setcookie( "PHPSESSID", "", time()-3600, '/');