提问者:小点点

Mysql PHP,检查是否管理[关闭]


对于一个学校项目,我试图做一个登录系统,检查你是管理员还是普通用户。 但现在它只重定向我的管理页面,我不知道为什么。 当我接触到php时,我很漂亮,所以我不太了解https://i.stack.imgur.com/clhzj.png

        $query= "SELECT * FROM lid WHERE mail = :mail AND wachtwoord = :wachtwoord";
        $statement = $connect->prepare($query);
        $statement->execute(
            array(
                'mail' => $_POST["mail"],
                'wachtwoord' => $_POST["wachtwoord"],
            )
        );
        $count = $statement->rowCount();






        if($count > 0)
        {
            $sql = "SELECT adminr FROM lid";
            $stmt = $connect->query($sql);
            $role = $stmt->fetch(PDO::FETCH_ASSOC);




            // normale redirect
            if($role['adminr'] =="0")
            {
                $_SESSION["mail"] = $_POST["mail"];
                header("location:index.html");
            }
            // admin speler redirect
            elseif($role['adminr'] =="1")
            {
                $_SESSION["mail"] = $_POST["mail"];
                header("location:admin.php");
            }
        }
        else
        {
            $message= '<label>Verkeerde Email of wachtwoord</label>';
        }
    }
}

共2个答案

匿名用户

我假设“盖子”是你的用户详细信息,包括用户名和密码? 如果是这样,为什么您的sql看起来是这样的:

$sql=“Select adminr FROM lid”;

不是应该有个WHERE子句吗?

匿名用户

您应该更改if条件login,因为您在引号中使用了0,所以它将是字符串,请尝试以下代码

          // admin speler redirect
            if(isset($role['adminr']) && $role['adminr'] == 1){
                $_SESSION["mail"] = $_POST["mail"];
                header("location:admin.php");
            }else{
                $_SESSION["mail"] = $_POST["mail"];
                header("location:index.html");
            }