我正在为学校的项目团队写一个小时的注册系统。一切都很有效,但我似乎无法验证用户的工作权利。
验证在用户表的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 {
}
乔纳森
答案 0 :(得分:1)
我相信这里有一些问题:
注意:正如我在评论中所说,用户数据应该在会话中,而不是cookie。
SELECT * FROM user
,这意味着如果您有ID,用户名,访问级别和其他一些内容,那么您将会把所有这些都带入var $acctype
,这显然不是一个整数。我认为修复方法是执行查询,获取结果,然后比较返回的行,只检查acctype
部分:
if ($row['acctype'] >= 1){
}