繁体   English   中英

我无法获取/访问我的会话变量的值到另一个页面

[英]I cant get/access the value of my session variables to another page

我有访问会话变量值的问题。

我正在创建一个登录页面,这是我设置我的会话变量的值。

的index.php

    $row = mysqli_fetch_array($result);
    if(mysqli_num_rows($result) > 0){
        session_regenerate_id();
        $user = mysqli_fetch_assoc($result);
        $_SESSION['SESS_ID'] = $user['id'];
        $_SESSION['SESS_UNAME'] = $user['username'];
        $_SESSION['SESS_PASS'] = $user['password'];
        session_write_close();
        header("location:home.php");
        exit();
    }

home.php

<?php
session_start();
if(!isset($_SESSION['SESS_ID']) || (trim($_SESSION['SESS_ID'])) == ''){
    header("location:index.php");
    exit();
}
?>
<html>
<body>
    <p>Login Successful</p>
</body>
</html>

这里的问题是我在$ _SESSION ['SESS_ID']中没有任何价值..那么如何在home.php中获取或访问此会话变量的值?

删除$row = mysqli_fetch_array($result); 线。

您的会话未设置的原因是因为调用$row = mysqli_fetch_array($result); $result的内部数据指针已经提前,你的$user = mysqli_fetch_assoc($result); 没有您期望的值,这就是您设置的所有会话变量为空的原因。

的index.php

session_start();
$row = mysqli_fetch_array($result);
    if(mysqli_num_rows($result) > 0){
        session_regenerate_id();
        $user = mysqli_fetch_assoc($result);
        $_SESSION['SESS_ID'] = $user['id'];
        $_SESSION['SESS_UNAME'] = $user['username'];
        $_SESSION['SESS_PASS'] = $user['password'];
        session_write_close();
        header("location:home.php");
        exit();
    }

在index.php上添加session_start()

当Session变量没有存储数据时,唯一导致此类结果的问题。 你的代码是写的。 请检查index.php中的session_start():在顶部。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM