PHP代码不显示用户名

时间:2013-11-21 17:22:57

标签: php

我的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>';
}

?>

2 个答案:

答案 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']


如何知道$ _SESSION里面是什么?

如果这不起作用,那么您必须提供更多信息。例如,与我们分享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 /输出中没有任何内容

啊哈,我的朋友。然后,您不会在代码中的任何位置设置$_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']