如何检查用户是普通用户还是管理员用户PHP

时间:2019-10-26 20:56:53

标签: php database forms

我可以使用普通用户和管理员用户登录网站, 我想检查该用户是普通用户还是管理员用户,然后将其发送到其他页面,但是当我尝试以下操作时我无法使用任何凭据登录,此方法不起作用。

我修改数据库表以为userType添加一列,如果是管理员则添加2列,如果是普通用户则添加1列

这是尝试过的:

   if($_SESSION['usertype'] == 2)
{
   //do stuff here 
}
 if ($_SESSION['usertype'] == 1)

 {
 //do stuff here 
 }

这是我的php文件:

<?php

if (isset($_POST['login-submit'])) {
    require 'dbh.php';
    $mail = $_POST['email'];
    $password = $_POST['pwd'];

    $sql = "SELECT * FROM user WHERE utepEmail=?";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: index.php?error=sqlerror");
        exit();
    } else {
        mysqli_stmt_bind_param($stmt, "s", $mail);
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        if ($row = mysqli_fetch_assoc($result)) {
            $pwdCheck = password_verify($password, $row['Password']);
            if ($pwdCheck == false) {
                header("Location: index.php?error=wrongpwd");
                exit();
            } elseif ($pwdCheck == true) {
                session_start();
                $_SESSION['username'] = $row['Name'];
                header("Location: index.php?success");
                exit();
            } else {
                eader("Location: index.php?error=wrongpwd");
                exit();
            }
        } else {
            header("Location: login.php?error=noouser");
            exit();
        }
    }
} else {
    header("Location: index.php");
    exit();
}

1 个答案:

答案 0 :(得分:0)

在主PHP文件中,您可能需要为用户类型设置会话变量,以便以后使用该类型时,已经设置了该值。 正确的地方是在选中密码后。

...
elseif ($pwdCheck == true) {
   session_start();
   $_SESSION['username'] = $row['Name'];
   $_SESSION['usertype'] = $row['usertype']; // <- add user type to the session
   header("Location: index.php?success");
   exit();
}
...

加载“成功”页面后,它将选择用户类型,然后您的结构便可以使用。