【问题标题】:How to print a single variable from PHP session array assigned from MYSQL database如何从 MYSQL 数据库分配的 PHP 会话数组中打印单个变量
【发布时间】:2019-09-21 10:20:49
【问题描述】:

从数据库创建的 PHP 会话数组,只想打印到屏幕上的一个变量。我正在使用这个guide

数组的创建者:

$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;

登录后登录页面的header如下,在2a-config.php中调用了start_session()

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"];

以及these 之前询问过questions,但仍然无法使其正常工作,并且我的错误日志中没有出现任何错误。

这是我 var dump 时的数组。

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

我想要的只是将 TEST 的数组变量“NAME”打印到屏幕上。我希望然后我可以锻炼如何提取用户电子邮件以更新我的数据库。正如你所看到的,我是 Stack Overflow 上的第一次发帖,如果我的问题缺乏,我深表歉意。谢谢。

【问题讨论】:

  • Whats print_r($_SESSION) show?
  • 你的数组的键是user,所以你可以用$_SESSION['user']['name']获取你的数据
  • 是的@fdehanne,就是这样。非常感谢!我正在查看的另一个问题是,但我对 php 很陌生,我无法将它分配给我自己的。非常感谢,谢谢

标签: php mysql arrays session


【解决方案1】:

怎么样:

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

【讨论】:

  • 是的,就是这样,非常感谢 - 我现在看到其他人的逻辑相同,但我是新手,所以无法将其应用于我自己的。我会删除它,因为它是重复的。不过还是谢谢你的回答!
猜你喜欢
  • 2016-03-16
  • 2017-04-25
  • 2016-06-15
  • 2015-10-09
  • 2012-12-12
  • 2012-05-01
  • 1970-01-01
  • 2014-04-26
  • 2011-01-14
相关资源
最近更新 更多