我的PHP代码不会显示我的用户的用户名。
它只显示“Hello”然后它是空白的。我尝试了print_r($_SESSION)
,但它仍无效。
提前致谢。
<?php
session_start();
if(!isset($_SESSION['user'] ['user']) && empty($_SESSION['user'])) {
echo '<a href="/login"><b>Log In</b></a>';
}
else {
echo "Hello, " . htmlspecialchars($_SESSION['username'], ENT_QUOTES, 'UTF-8');
echo '</br></b>';
echo '<a href="/login/logout.php"><b>Log Out</b></a>';
}
?>
答案 0 :(得分:1)
我怀疑这个错误在访问$ _SESSION数组时会出错。
在修复此错误时,请避免使用htmlspecialchars
函数。
<?php
session_start();
if(!isset($_SESSION['user']) && empty($_SESSION['user'])) {
echo '<a href="/login"><b>Log In</b></a>';
}
else {
echo "Hello, " . $_SESSION['user'];
echo '</br></b>';
echo '<a href="/login/logout.php"><b>Log Out</b></a>';
}
?>
由于您要在if
内查询$_SESSION
中的“用户”,因此该值必须位于$_SESSION['user']
。
如果这不起作用,那么您必须提供更多信息。例如,与我们分享print_r($_SESSION);
像这样:
<?php
session_start();
if(!isset($_SESSION['user']) && empty($_SESSION['user'])) {
echo '<a href="/login"><b>Log In</b></a>';
}
else {
echo "This is the value inside of session variable: <br><pre>";
print_r($_SESSION['user']);
echo "</pre>";
echo '</br></b>';
echo '<a href="/login/logout.php"><b>Log Out</b></a>';
}
?>
下次在浏览器中加载网页时,它不会显示Hello
它将显示$_SESSION['user']
!!!!!!!内的内容
当你看到它提供给我们编辑你的问题或作为对这个答案的回应。
啊哈,我的朋友。然后,您不会在代码中的任何位置设置$_SESSION['user']
的值。
记住一点点。你最后一次这样做是在哪里:
<?php
session_start();
...
$_SESSION['user'] = $someUserValueOrUserName;
如果你的答案是:OMG I have never done such thing in my life
那么你必须在正确的地方做到。那个地方是用户在您的应用程序中登录的地方。
答案 1 :(得分:0)
您的用户数据似乎存储在$_SESSION['user']
,因为您引用$_SESSION['user']['user']
处设置的内容。我怀疑要检索您真正想要的用户名$_SESSION['user']['username']
。