php将两个角色重定向到同一页面
有两个角色,管理员角色和用户角色。每个用户都必须重定向到不同的页面,但都会重定向到Administrator角色的页面 php包含登录表单php将两个角色重定向到同一页面,php,mysql,redirect,mysqli,roles,Php,Mysql,Redirect,Mysqli,Roles,有两个角色,管理员角色和用户角色。每个用户都必须重定向到不同的页面,但都会重定向到Administrator角色的页面 php包含登录表单 <?php include('conexion.php'); ?> <!DOCTYPE html> <html lang="zxx"> <head> <title>Inicio de Sesion</title> <!-- Meta-Tags -->
<?php
include('conexion.php');
?>
<!DOCTYPE html>
<html lang="zxx">
<head>
<title>Inicio de Sesion</title>
<!-- Meta-Tags -->
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="utf-8">
<meta name="keywords" content="Core Login Form a Responsive Web Template, Bootstrap Web Templates, Flat Web Templates, Android Compatible Web Template, Smartphone Compatible Web Template, Free Webdesigns for Nokia, Samsung, LG, Sony Ericsson, Motorola Web Design">
<!-- //Meta-Tags -->
<!-- Index-Page-CSS -->
<link rel="stylesheet" href="css/style.css" type="text/css" media="all">
<!-- //Custom-Stylesheet-Links -->
<!--fonts -->
<link href="//fonts.googleapis.com/css?family=Mukta+Mahee:200,300,400,500,600,700,800" rel="stylesheet">
<!-- //fonts -->
<!-- Font-Awesome-File -->
<link rel="stylesheet" href="css/font-awesome.css" type="text/css" media="all">
</head>
<body>
<h1 class="title-agile text-center">Acceder al Sistema</h1>
<div class="content-w3ls">
<div class="agileits-grid">
<div class="content-top-agile">
<h2>Datos de Ingreso</h2>
</div>
<div class="content-bottom">
<form action="validacion.php" method="post">
<div class="field_w3ls">
<div class="field-group">
<input name="user" id="user" type="text" value="" placeholder="User" required>
</div>
<div class="field-group">
<input id="passw" type="passw" class="form-control" name="passw" value="" placeholder="Password">
<span toggle="#password-field" class="fa fa-fw fa-eye field-icon toggle-password"></span>
</div>
</div>
<div class="wthree-field">
<input id="saveForm" name="saveForm" type="submit" value="Login" />
</div>
</form>
</div>
<!-- //content bottom -->
</div>
</div>
<div class="copyright text-center">
<p>© 2020 Management documents
</p>
</div>
<!--//copyright-->
</body>
<!-- //Body -->
</html>
php用户将被验证并重定向到与角色对应的页面
<?php
include('conexion.php');
$user = addslashes($_POST['user']);
$passw = addslashes($_POST['passw']);
#
$query_user = mysqli_query($conexion,"SELECT * FROM login WHERE user = '".$user."'");
$query_role = mysqli_query($conexion,"SELECT role FROM login WHERE user = '".$user."' ");
if(mysqli_num_rows($query_user) < 1){
echo "<script> alert('Error en datos...');</script>";
echo "<script>document.location.href = 'index.php'; </script>";
}else{
$query_passw = mysqli_query($conexion,"SELECT * FROM login WHERE user = '".$user."' AND password = '".$passw."' ");
if (mysqli_num_rows($query_passw) < 1) {
echo "<script> alert('Date Error...');</script>";
echo "<script>document.location.href = 'index.php'; </script>";
}else{
echo "<script> alert('SucIngreso Exitoso...');</script>";
$role = mysqli_fetch_assoc($query_role);
if(strcmp($role,"admin") == 0){
header('Location: admin.php');
}
elseif(strcmp($role,"user") == 0){
header('Location: user.php');
}
}
}
?>
进行查询以了解哪个角色对应于启动会话的用户,并验证该角色以将其重定向到相应的页面,但两个用户都被重定向到管理角色的页面。我将为您提供一种在php中快速调试的通用方法 这是var_dump函数的用法,用于显示变量类型和值,用于显示行为错误的变量 在这种情况下 由于它总是重定向到“admin.php”页面, 这意味着这句话永远是对的 strcmp$角色,管理员==0 因此,使用var_dump$role检查变量值;要查看它在每次运行时的值,可能是数据库中的值始终为“admin”,因此需要检查它。
使用if$role===admin而不是ifstrcmp$role,admin==0更清楚将strcmp$role,admin更改为strcmp$role[role],admin因为mysqli_fetch_assoc返回一个关联数组。您需要参考一些教程。这里有许多不良做法。您的fetch用法还意味着您还没有看到它是如何返回的。另外,您不需要重复三次相同的查询,而且$consultar\u user似乎永远不会被设置。