Php Session用户无法正常工作

时间:2014-02-04 19:37:35

标签: php arrays session

首先,我在页面开头使用session_start()

这是一个不同的会话问题,我的登录代码:

$email = $_POST['email'];
$senha = $_POST['senha']; //password

$user = new User();
$user->setEmail($email);
$user->setSenha($senha);
$dao = new UserDao();
$login = $dao->login($user);

if($login != false) 
{
    $arrayL = $login->toArray();
    $_SESSION['user'] = $arrayL;
}

问题是,$_SESSION['user']无效,未将信息传递给其他网页。

要检查会话是否正常,我试过这个:

if(!isset($_SESSION['ar']))
{
    $ar = array();
    $_SESSION['ar'] = $ar;    
}
else
{
    $ar = $_SESSION['ar'];
    $ar[] = "mais1";
    $_SESSION['ar'] = $ar;
}

每次页面加载时运行,并且它的工作正常,$ar数组正在增长。 但要使事情变得很奇怪,

我确实将此代码添加到登录脚本中,以检查是否正在添加$ar数组,仅用于测试:

$arrayL = $login->toArray();
$_SESSION['user'] = $arrayL;
$ar = $_SESSION['ar'];
$ar[] = $arrayL;
$_SESSION['ar'] = $ar;

在页面的开头和结尾处,我设置了var_dump($_SESSION); 我登录时会感到惊讶,它会显示$_SESSION['user]$ar数组以及用户详细信息。但是当我重新加载页面时,$ar数组会保持正常,但没有$user信息,$_SESSION['user']完全消失了。

发生了什么事?

1 个答案:

答案 0 :(得分:0)

 if(!isset($_SESSION['ar']))
    {
        $ar = array();
        $_SESSION['ar'] = $ar;

    }
else
    {
        $ar = $_SESSION['ar'];
        $ar[] = "mais1";
        $_SESSION['ar'] = $ar;
    }

因此,如果未设置会话“ar”,则将会话“ar”设置为$ ar。 $ ar是由“mais1”组成的数组。当你这样做时,$ _SESSION ['ar'] ['用户']不再存在。