首先,我在页面开头使用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']
完全消失了。
发生了什么事?
答案 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'] ['用户']不再存在。