管理员检查不起作用

时间:2017-01-14 13:16:13

标签: php session mysqli

我不知道男人们有什么问题。请帮忙。这里给出了这样的错误:

  

mysqli_fetch_array()要求参数1为mysqli_result,第8行的C:\ xampp \ htdocs \ test \ session1.php中给出布尔值

<?php
    error_reporting(E_ALL);
    require 'db.php';
    $username = $_SESSION['username'];
    $sql = "SELECT isadmin FROM user WHERE username='$username'"; 

    $result = mysqli_query($con,$sql); 
    $admin = mysqli_fetch_array($result); 

    $_SESSION['admin'] = $admin['admin']; 
    if ($_SESSION['admin'] == 1) { 
        echo "Welcome Admin"; 
    }else{ 
        echo "Normal User"; 
    }
?>

3 个答案:

答案 0 :(得分:0)

之所以如此,是因为您的查询中存在一些错误,并且它正在返回false

尝试检查$username是否为空并且查询中引用的列是否正确。

并且您的查询构建不是正确的方法,而是应该在查询中传递参数,这样可以使其免于sql injection

请参阅此链接以获取更多信息:parameters in MySQLi

答案 1 :(得分:0)

针对管理问题尝试以下操作

$row = mysqli_fetch_array($result, MYSQLI_ASSOC);

如果你想用['admin']访问数组,你需要定义模式然后你需要告诉mysqli_fetch_aaray返回一个关联数组

请参阅http://php.net/manual/en/mysqli-result.fetch-array.php

答案 2 :(得分:0)

查看您要选择的列:

SELECT isadmin
       ^^^^^^^

然后您尝试使用/获取admin列。

$admin['admin']
        ^^^^^

其中一个是不正确的,他们需要匹配并且不清楚哪个列名是正确的,isadminadmin

最有可能的是:

$admin['isadmin']

在看到您发布的错误消息后:(我可能会添加,此答案在发布之前已发布)。

  

未定义的索引:admin

并基于您在问题中发布的内容。

如果admin列(也)存在,那么您需要在SELECT中添加它,但这似乎不是这种情况。

基本上,您的查询失败,您需要检查查询中的错误。