Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php将两个角色重定向到同一页面_Php_Mysql_Redirect_Mysqli_Roles - Fatal编程技术网

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 -->

有两个角色,管理员角色和用户角色。每个用户都必须重定向到不同的页面,但都会重定向到Administrator角色的页面

php包含登录表单

 <?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似乎永远不会被设置。