如何在不重新登录的情况下重新加载会话

How to reload session without re-login

我有这个代码:

<?php
$data = $_POST;
$lastchange = date('l jS \of F Y h:i:s A');
if(isset($data['do_change'])) {
    $user = R::findOne('users', 'login = ?', array($login));
    if ($user) {
        $user->lastchange = $lastchange;
        $user->login = $data['newlogin'];
        R::store($user);
    }
}
?>

更新用户数据后,会话数据不是最新的。在该脚本之后,我可以以某种方式结束会话并重新启动它,而无需用户再次登录吗?

这是登录部分:

if (isset($data['do_login'])) {
    session_start ()
    if ($response != null && $response->success) {
        $user = R::findOne('users', 'login = ?', array($data['login']));
        if ($user) {
            if (($data['password'] == $user->password)) {
                $_SESSION['logged_user'] = $user;
                header('Location: pcab.php');
                exit;
            }
        }
    }
}

您不需要重新加载会话,只需在更新用户数据后更新会话数据即可。

<?php
$data = $_POST;
$lastchange = date('l jS \of F Y h:i:s A');
if(isset($data['do_change'])) {
    $user = R::findOne('users', 'login = ?', array($login));
    if ($user) {
        $user->lastchange = $lastchange;
        $user->login = $data['newlogin'];
        R::store($user);
        $_SESSION['logged_user'] = $user; // update the logged-in user
    }
}
?>