Как я отражаю определенную часть этого массива сеанса? - PullRequest
0 голосов
/ 25 января 2019

При попытке напечатать / отобразить определенную часть моего массива сеанса он не выдаст ничего, кроме '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" } } }

вывод

Примечание: неопределенный индекс: имя_пользователя в C: \ xampp \ htdocs \ Projecten \ loginSystem \ pages \ dashboard.php в строке 7С возвращением 1!

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Как вы упомянули, ваши данные сеанса имеют вид:

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'];
0 голосов
/ 25 января 2019

В вашей сессии 2 массива Сделай так:

echo "Welcome back " . print_r($_SESSION['userdata'][0][0]['user_name']) . "!";
...