PHP用户身份验证无法正常工作,数据无法正确过滤

时间:2015-03-25 00:23:56

标签: php session mysqli

我正在尝试根据登录的用户类型过滤数据库数据。如果管理员已登录,他应该能够查看数据库中的所有数据,但如果特定用户已登录,他应该只能查看他/她的信息。然而,它不起作用。管理部分工作,但“普通”用户仍然可以查看所有数据表数据,这不是我想要的。请帮助我们还在学习PHP的人

这是我文件顶部的PHP:     

if(!isset($_SESSION['loggedIn']) && $_SESSION['loggedIn'] !== true) {
header("Location: Login.php");
}


include("Functions.php");
include("Database.php");

$db = mysqli_connect($host, $user, $password, $db)
or die(mysqli_connect_error());



?>

这是我表中的PHP:                                       纳摩                 电子邮件                 

            if(isset($_SESSION['admin']) && $_SESSION['admin'] == true)   {
            echo "<th>Admintype</th>";
            echo "<th>User ID</th>";
            }
            ?>
        </tr>
        <?php
        if(isset($_SESSION['admin']) && $_SESSION['admin'] == true) {
            $query = "SELECT * FROM gebruikers";

            if ($result = $db->query($query)) {

                while ($user = $result->fetch_assoc()) {
                    echo "<tr>";
                    echo "<td>" . $user['usersId'] . "</td>";
                    echo "<td>" . $user['naam'] . "</td>";
                    echo "<td>" . $user['email'] . "</td>";
                    echo "<td>" . $user['admintype'] . "</td>";
                    echo "</tr>";
                }
            }
        } elseif(!isset($_SESSION['admin']) && $_SESSION['admin'] !== true)   {
            $query2 = "SELECT naam, email
                       FROM gebruikers
                       WHERE usersId = " . $_SESSION['id'] . " ";
            if ($result2 = $db->query($query2)) {

                while ($user2 = $result2->fetch_assoc()) {
                    echo "<tr>";
                    echo "<td>" . $user['naam'] . "</td>";
                    echo "<td>" . $user['email'] . "</td>";
                    echo "</tr>";
                }
            }
        }
        ?>
    </table>

用户登录时启动的$_SESSION['id'],它还会检查用户是否为管理员。

0 个答案:

没有答案