删除会话cookie

时间:2013-09-08 18:32:36

标签: php session cookies

为什么我打电话的时候:

<?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*
)

4 个答案:

答案 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, '/');