首页 > 解决方案 > 我的 PHP 会话值没有自动更新

问题描述

我刚刚在 PHP 中创建了一个登录和配置文件更新系统:

while ($row = mysqli_fetch_assoc($result_login_process)) {
    $db_user_name       = $row['user_name'];
    $db_user_first_name = $row['user_firstname'];
    $db_user_last_name  = $row['user_lastname'];
    $db_user_email      = $row['user_email'];
    $db_user_password   = $row['user_password'];
    $db_user_content    = $row['user_content'];
    $db_user_role       = $row['user_role'];
}

if($user_email === $db_user_email && $user_password === $db_user_password && $db_user_role = "Admin") {
    $_SESSION['user_name']      = $db_user_name;
    $_SESSION['user_firstname'] = $db_user_first_name;
    $_SESSION['user_lastname']  = $db_user_last_name;
    $_SESSION['user_email']     = $db_user_email;
    $_SESSION['user_role']      = $db_user_role;
    header("Location: admin/");
}

在上面的代码中,我从数据库中获取数据并将它们存储在$_SESSION变量中供以后使用。如果用户更新他们的个人资料,所有会话变量数据都应该更新以匹配。

成功更新他们的个人资料后,它也会在数据库中更新。但是以前我将变量存储在会话变量中usernameemail 并且它们没有使用数据库中的新数据进行更新,它们仍然是旧值。

if(isset($_SESSION['user_name'])) {
    $user_letter = strtoupper($_SESSION['user_name']);
    $user_name   = $_SESSION['user_name'];
    $user_email  = $_SESSION['user_email'];
}

更新数据库更改后如何更新会话变量?

标签: phpvariablessession

解决方案


推荐阅读