Как напечатать одну переменную из массива сеансов PHP, назначенного из базы данных MYSQL - PullRequest
0 голосов
/ 02 мая 2019

PHP сессионный массив создан из базы данных и хочет выводить на экран только одну переменную. Я использую это руководство .

Массив создается:

$user = $libUsr->check($_POST['email'], $_POST['password']);
if ($user===false) { echo "ERR"; }
else {
$_SESSION['user'] = [
"name" => $user['user_name'],
"email" => $user['user_email'],
"status" => $user['user_status'],
"data" => $user['user_data']
];
echo "OK";
}
break;

Заголовок страницы входа после входа ниже, с start_session (), вызываемой в 2a-config.php

require __DIR__ . DIRECTORY_SEPARATOR . "lib" . DIRECTORY_SEPARATOR . "2a- 
config.php";
if (!is_array($_SESSION['user'])) {
header("Location: index.php");
die();
}

Я перепробовал все такие комбинации (конечно, с тегами php):

echo $user["name"];
echo $user[1]["name"];
print_r(array_column($user, ‘name’));

Даже впадал в отчаяние, так как я потратил много времени на это, и никаких других ответов, которые я нашел, не работало, поэтому даже пытался

echo $_SESSION["name"];
echo $_SESSION[1]["name"];

Так же, как и эти ранее заданные вопросы , но все еще не удается заставить его работать, и в моем журнале ошибок не появляется никаких ошибок.

Это массив, когда я вар дампа.

ARRAY(1) { ["USER"]=> ARRAY(4) { ["NAME"]=> STRING(4) "TEST" ["EMAIL"]=> 
STRING(13) "TEST@TEST.COM" ["STATUS"]=> STRING(1) "A" ["DATA"]=> 
STRING(32) "9529C449206201FDBCE28CFA42FD48C8" } }

Все, что я хочу, это просто напечатать переменную массива "NAME", которая является TEST, на экран. Тогда я надеюсь, что смогу вытащить электронную почту пользователя, чтобы обновить свою базу данных. Как вы видите, я впервые постер о переполнении стека, поэтому извиняюсь, если мой вопрос отсутствует. Спасибо.

1 Ответ

0 голосов
/ 03 мая 2019

Как насчет:

echo $_SESSION["user"]["name"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...