1

我很难结束会话 cookie。每当我登录和注销时,浏览器仍然显示“PHPSESSID”。

下面是我用来构建的 php 文件的网址。我已经尝试过“Chrome 和 Firefox”,但仍然存在同样的问题。我知道这是一个很大的求助,但我会非常感谢它。

这些文件位于包含以下文件的源文件夹中。fg-membersite.php membersite_config.php

https://github.com/simfatic/RegistrationForm/tree/master/source

4

5 回答 5

4

您必须在https://github.com/simfatic/RegistrationForm/blob/master/source/include/fg_membersite.php中取消设置会话 cookie ,函数 Logout

你可以这样做

<?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();
?>

代码示例取自 http://php.net/manual/en/function.session-destroy.php。您可以在 php.net 中找到更多信息

于 2013-09-10T05:02:37.903 回答
0
  1. 这些文件位于“源”文件夹中的“包含”文件夹中

  2. PHPSESSID 不一定与登录/注销有关,它只是用于处理会话。

正如您在此处看到的(https://github.com/simfatic/RegistrationForm/blob/master/source/include/fg_membersite.php,从第 172 行开始):

function LogOut()
{
    session_start();        
    $sessionvar = $this->GetLoginSessionVar();        
    $_SESSION[$sessionvar]=NULL;        
    unset($_SESSION[$sessionvar]);
}

此代码不会破坏会话,而只是取消设置 $_SESSION 数组中的变量。你可以使用

http://de2.php.net/manual/en/function.session-unset.php

其次是

http://de2.php.net/manual/en/function.session-destroy.php

为此,或者只是检查是否设置了 $_SESSION[$sessionvar] 并包含有效信息以查看用户是否已登录。这样您就可以保留可能包含其他有价值信息的会话。

于 2013-09-10T05:04:14.533 回答
0

尝试在您的注销功能中关注

session_unset();
session_destroy();
于 2013-09-10T04:59:01.870 回答
0

对不起,我以前的低质量答案

于 2015-07-24T14:35:56.177 回答
0

您可以使用下面的脚本轻松地在客户端执行此操作。
(您可能需要更改路径和主机的值)

document.cookie = "PHPSESSID=; expires=Thu, 01 Jan 1970 00:00:00 UTC;path=/;host=localhost";
于 2015-08-19T12:18:04.047 回答