验证用户的权限

时间:2014-02-19 15:49:41

标签: php sql access-rights

我正在为学校的项目团队写一个小时的注册系统。一切都很有效,但我似乎无法验证用户的工作权利。

验证在用户表的acctype字段中完成。如果为0(访客),则只能查看小时列表,如果1(专家)可以添加自己的小时数,如果是2(项目经理),则可以查看用户提交的小时数。

起初我只使用$ account查询,但我没有选择它们,只选择了acctype。

有谁知道我做错了什么?

$cookie = $_COOKIE['user'];
$account = mysqli_query($conn, "SELECT * FROM user WHERE user = '" . $cookie . "'");
$acctype = mysqli_fetch_assoc($account->acctype);

if(isset($cookie) && $acctype >= 1) {

} else {

}

乔纳森

1 个答案:

答案 0 :(得分:1)

我相信这里有一些问题:

  • 您正在查看cookie,然后再检查它是否已设置。那是个错误。您应该看看是否有cookie,然后阅读它。您也不需要为它分配一个单独的变量。

注意:正如我在评论中所说,用户数据应该在会话中,而不是cookie。

  • 我不知道您的数据库架构是什么样的,但您的查询是SELECT * FROM user,这意味着如果您有ID,用户名,访问级别和其他一些内容,那么您将会把所有这些都带入var $acctype,这显然不是一个整数。

我认为修复方法是执行查询,获取结果,然后比较返回的行,只检查acctype部分:

if ($row['acctype'] >= 1){

}

文档:http://us1.php.net/mysqli_fetch_assoc