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

时间:2013-08-16 05:41:18

标签: php session session-variables

我遇到访问会话变量值的问题。

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

的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中获取或访问此会话变量的值?

3 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

<强>的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()

答案 2 :(得分:1)

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