我有一个正常工作的登录和注册系统,虽然我想添加用户访问级别,以便具有管理员权限的用户可以访问普通用户无法访问的页面。我让我的代码回应,所以我知道它现在是否真的有效。
这是我使用的代码:
echo("Hello $_SESSION[user]");
if ($_SESSION['user']==1) {
echo "You have admin access";
} else {
echo "You're a regular user";
}
所以基本上,如果用户在数据库中的级别为1,则他们是管理员,而下面的任何人都是普通用户。
问题是它永远不会有效,它始终显示"您是普通用户"
我的代码:
echo("Hello $_SESSION[user]");
回应这个" Hello ArrayYou是一个普通用户"
我知道我的登录系统为用户设置了会话,但它说它是一个数组。
这是我的登录页面,因为我是PHP的新手,所以我没有这样做:http://pastebin.com/h0zqnNSe
对于任何好奇的人,我知道我的数据库中的级别行正在运行,因为我已经使用其他脚本回复了这一点,正如您所见here
答案 0 :(得分:1)
$_SESSION['user']
是一个关联数组,包含从数据库中检索的用户的各种属性。 ID号位于此数组的id
元素中,因此您需要执行以下操作:
echo("Hello {$_SESSION['user']['username']} (ID = {$_SESSION['user']['id']})");
if ($_SESSION['user']['id']==1) {
echo "You have admin access";
} else {
echo "You're a regular user";
}
答案 1 :(得分:0)
在页面顶部,您需要添加
session_start();
在此处查看所有信息: http://php.net/manual/en/function.session-start.php
正如@Barmar回答显示这是另一个缺失的部分$ _SESSION ['user'] ['id']