使用会话数组

时间:2016-01-21 02:24:35

标签: php

我有一个正常工作的登录和注册系统,虽然我想添加用户访问级别,以便具有管理员权限的用户可以访问普通用户无法访问的页面。我让我的代码回应,所以我知道它现在是否真的有效。

这是我使用的代码:

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

2 个答案:

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