首页 > 解决方案 > PHP 7 - 会话文件不被丢弃

问题描述

!!!!我知道这已经被问了无数次了,但我什么都试过了,就是不管用,所以请不要放弃这个问题

从一个用户登录到另一个用户时,根本不会丢弃会话,并且会显示以前的用户数据

我必须 CTRL+F5 导航器才能获得正确的新记录用户数据

我试过了 :

有问题的是,我用来自新登录用户(来自数据库)的新数据替换了会话变量中的所有内容,但某些字段仍然是前一个用户的遗骸......这根本没有意义

$_SESSION = array();
unset($_SESSION["end_user_session"]);

$session=$endUser;    // from DB !!!!
$session["sessionID"]=session_id();

$_SESSION["end_user_session"] = $session;

在注销时,我这样做,它应该破坏会话值,但它们仍然存在:

    $_SESSION = array(); 
    session_unset();
    session_destroy();
    session_write_close();
    setcookie(session_name(),'',0,'/');
    $_SESSION = array();

这已经让我发疯了 2 年多了

我们在 wamp 和我们的 linux preprod/prod 上遇到了问题

请帮忙,如果您需要更多信息,请告诉我

标签: phpsession

解决方案


您可能已经尝试过(它在 PHP 手册中),但以防万一:

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

推荐阅读