php无法读取会话值

时间:2013-03-05 07:49:26

标签: php session

我正在使用login.php页面。 当用户成功登录时,系统会将其用户名保存到会话中。如下代码所示:

if ($user != null) {
    $_SESSION['username'] = $user["username"];
    $_SESSION['userid'] = $user["id"];
    return 0;
}

然后页面将位于main.php。 Main.php将读取会话,如下面的代码:

session_start();
if (isset($_SESSION['username']) == false || empty($_SESSION['username']))
{
    // transfer into login page
}
else
{
    echo $_SESSION['username'];
}

主页面无法读取$ _SESSION ['username'],值为null。 我现在该怎么办?

4 个答案:

答案 0 :(得分:2)

您应该在session_start()检查条件页面添加$user

session_start();
if ($user != null)
{
    $_SESSION['username'] = $user["username"];
    $_SESSION['userid'] = $user["id"];
    return 0;
} 

答案 1 :(得分:1)

使用SESSION变量时必须添加session_start()

session_start(); //at the beginning of file 

if ($user != null) {
    $_SESSION['username'] = $user['username'];
    $_SESSION['userid'] = $user['id'];
    return 0;
} 

然后

session_start();

if (isset($_SESSION['username'])) {
    // transfer into login page
}
else
{
    echo $_SESSION['username'];
}

答案 2 :(得分:1)

如果要使用会话变量。你必须在使用会话变量之前启动会话。

session_start();
if ($user != null) {
    $_SESSION['username'] = $user["username"];
    $_SESSION['userid'] = $user["id"];
    return 0;
}

答案 3 :(得分:0)

session_start();
if (count($user)>0 and is_array($user)) {
    $_SESSION['username'] = $user["username"];
    $_SESSION['userid'] = $user["id"];

}