Php 无法删除会话和Cookie

Php 无法删除会话和Cookie,php,session,cookies,Php,Session,Cookies,无法删除会话和Cookie 我不熟悉PHP会话。 我过去经常吃饼干。 不管我做什么,我似乎都无法摆脱这种饼干 我似乎能够清除会话,但cookie仍然存在 所有这些我都试过了:。。更多信息: <?php // Initialize the session. // If you are using session_name("something"), don't forget it now! session_start(); // Unset all of the session vari

无法删除会话和Cookie

我不熟悉PHP会话。 我过去经常吃饼干。 不管我做什么,我似乎都无法摆脱这种饼干

我似乎能够清除会话,但cookie仍然存在

所有这些我都试过了:。。更多信息:

<?php

// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();

// Unset all of the session variables.
$_SESSION = array();

// If it's desired to kill the session, also delete the session cookie.
// Note: This will destroy the session, and not just the session data!
if (ini_get("session.use_cookies")) {
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000,
        $params["path"], $params["domain"],
        $params["secure"], $params["httponly"]
    );
}

// Finally, destroy the session.
session_destroy();

if (isset($_SERVER['HTTP_COOKIE'])) {
    $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
    foreach($cookies as $cookie) {
        $parts = explode('=', $cookie);
        $name = trim($parts[0]);
        setcookie($name, '', time()-1000);
        setcookie($name, '', time()-1000, '/');
    }
}

?>

上自:



var cookies=document.cookie.split(“;”);
对于(变量i=0;i


cookies没有删除的原因是什么?

这是因为php中的会话工作。当您启动会话时,会生成一个唯一的字符串,该字符串充当会话的cookie值。存储在会话中的所有数据都存储在与唯一字符串对应的文件中。现在,当您销毁会话时,它不会销毁会话字符串,而是销毁存储在服务器上的与该字符串对应的值


因此,即使cookie存在,但没有与之对应的数据,因此对于下一个请求,会话实际上是空的

这是因为php中的会话工作正常。当您启动会话时,会生成一个唯一的字符串,该字符串充当会话的cookie值。存储在会话中的所有数据都存储在与唯一字符串对应的文件中。现在,当您销毁会话时,它不会销毁会话字符串,而是销毁存储在服务器上的与该字符串对应的值


因此,即使cookie存在,但没有与之对应的数据,因此对于下一个请求,会话实际上是空的

多谢各位。所以你说的是“数据消失了,但cookie仍然存在”。有没有办法把饼干也扔掉?为了清楚起见。你能回答“cookies不删除的原因是什么?”据我记忆所及,cookie设置为在浏览会话结束时销毁。让我找到你的确切链接this@georoot在像OP一样使用
setcookie
之后,在收到响应后,cookie应该被删除。这里找不到链接,但这里有一个示例屏幕截图通知,PHP会话cookie将在浏览会话结束时过期谢谢。所以你说的是“数据消失了,但cookie仍然存在”。有没有办法把饼干也扔掉?为了清楚起见。你能回答“cookies不删除的原因是什么?”据我记忆所及,cookie设置为在浏览会话结束时销毁。让我找到你的确切链接this@georoot在像OP一样使用
setcookie
之后,收到响应后应删除cookie。此处找不到链接,但此处有一个示例屏幕截图,提示PHP会话cookie将在浏览会话结束时过期。您可以尝试使用snippet。您可以尝试使用snippet。
<script>
var cookies = document.cookie.split(";");
for (var i = 0; i < cookies.length; i++)
  eraseCookie(cookies[i].split("=")[0]);
</script>