当尝试打印/回显会话数组的特定部分时,它将不会返回除“ 1”之外的任何内容
它也给我一个错误,告诉我user_name
是一个未定义的索引,但是当我var_dump
进行会话时,它表明它存在。
仅在屏幕上显示会话的user_name
部分的正确方法是什么?
我尝试过print_r
,echo
,print
,但这些方法似乎都不起作用
session_start();
include '../php/database.php';
var_dump($_SESSION['userdata']);
echo "Welcome back " . print_r($_SESSION['userdata']['user_name'][0]) . "!";
我希望输出为“ Welcome back user_name”,在这种情况下,应为文本字符串“ empty”
var_dump:
array(1) { [0]=> array(1) { [0]=> array(8) { ["user_id"]=> string(1) "1" [0]=> string(1) "1" ["user_name"]=> string(5) "empty" [1]=> string(5) "empty" ["user_pass"]=> string(5) "empty" [2]=> string(5) "empty" ["user_email"]=> string(17) "empty@hotmail.com" [3]=> string(17) "empty@hotmail.com" } } }
输出
注意:未定义的索引:user_name在 第7行的C:\ xampp \ htdocs \ Projecten \ loginSystem \ pages \ dashboard.php 欢迎回来1!
答案 0 :(得分:2)
您的会话中有2个数组 这样做:
echo "Welcome back " . print_r($_SESSION['userdata'][0][0]['user_name']) . "!";
答案 1 :(得分:1)
您提到的会话数据如下:
array(1) {
[0]=> array(1) {
[0]=> array(8) {
["user_id"]=> string(1) "1" [0]=> string(1) "1"
["user_name"]=> string(5) "empty" [1]=> string(5) "empty"
["user_pass"]=> string(5) "empty" [2]=> string(5) "empty"
["user_email"]=> string(17) "empty@hotmail.com" [3]=> string(17) "empty@hotmail.com"
}
}
}
要获取用户名,您将必须以以下方式遍历数组:
echo $_SESSION['userdata'][0][0]['user_name'];