以下代码返回一些令我困惑的结果......
if(is_array($loginUser)) {
$_SESSION['name'] = $loginUser['firstname'];
$_SESSION['id'] = $loginUser['id'];
print_r($_SESSION['name']);
print_r($loginUser);
var_dump($loginUser[1]);
exit();
header("Location: ../index.php?page=home");
}
返回:
注意:未定义的索引:wwwroot / includes / userhandler.php中的firstname 在第124行
注意:未定义的索引:wwwroot / includes / userhandler.php中的id 第125行
Array ( [0] => Array ( [0] => 4 [id] => 4 [1] => Johnny [firstname] => Johnny [2] => Appleseed [lastname] => Appleseed [3] => ja@ja.com [email] => ja@ja.com [4] => johnny'shashedpassword [password] => johnny'shashedpassword ) )
注意:未定义的偏移量:wwwroot / includes / userhandler.php中的1 第129行
NULL
答案 0 :(得分:1)
id
和firstName
存储在包含密钥0
变化
$_SESSION['name'] = $loginUser['firstname'];
$_SESSION['id'] = $loginUser['id'];
到
$_SESSION['name'] = $loginUser[0]['firstname'];
$_SESSION['id'] = $loginUser[0]['id'];
但是我没有理由为什么你的$loginUser
数组中有额外的维度。尝试重构$loginUser
构建其数组的方式
稍后您在代码中调用var_dump($loginUser[1]);
这会返回您的第二条错误消息,因为只有$loginUser[0]
答案 1 :(得分:0)
您的阵列位于另一个阵列中。您可以使用以下代码行解决此问题:
$loginUser = current($loginUser);
此外,使用var_dump
时,我总觉得使用<pre />
标签很容易。这使您可以更轻松地查看阵列的构建方式。
示例:
echo "<pre>";
var_dump($loginUser);
echo "</pre>";
exit;