对于一个学校项目,我试图做一个登录系统,检查你是管理员还是普通用户。 但现在它只重定向我的管理页面,我不知道为什么。 当我接触到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>';
}
}
}
我假设“盖子”是你的用户详细信息,包括用户名和密码? 如果是这样,为什么您的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");
}