使用管理员或用户php登录

使用管理员或用户php登录,php,mysql,Php,Mysql,我做了一个登录页面,这意味着我可以根据电子邮件和密码访问user.php或admin.php。 我有一个数据库(phpmyadmin),有2个用户。我添加了一个布尔字段“type”(0表示普通用户,1表示管理员) 以下是我的php代码: <?php session_start(); $mysqli = new mysqli("localhost", "root", "", "database"); if ($mysqli->connect_errno) { echo "Ech

我做了一个登录页面,这意味着我可以根据电子邮件和密码访问user.php或admin.php。 我有一个数据库(phpmyadmin),有2个用户。我添加了一个布尔字段“type”(0表示普通用户,1表示管理员)

以下是我的php代码:

<?php
session_start();
$mysqli = new mysqli("localhost", "root", "", "database");
if ($mysqli->connect_errno) {
    echo "Echec lors de la connexion à MySQL : (".$mysqli->connect_errno.") ".$mysqli->connect_error;
}
if (isset($_POST['submit'])) {
    $email = $_POST['email'];
    $password = $_POST['password'];

    if ($email == "" || $password == "") {
        echo '<div id ="errormsg">Please fill in all fields</div>';
    } else {
        $query = mysqli_query(
            $mysqli,
            "SELECT * FROM client WHERE email = '$email' and password = '$password' and type = 1 "
        ) or die ("Can't query the database");
        $count = mysqli_num_rows($query);

        if ($count == 1) {
            if ($type == 1) {
                $_SESSION['email'] = $email;
                header("location: admin.php");
            } else {
                if ($type == 0) {
                    $_SESSION['email'] = $email;
                    header("location: user.php");
                } else {
                    echo '<div id="errormsg">No matches, try again</div>';
                }
            }
        }
    }
}

我认为
$type
不是if语句的有效代码,如果工作,请尝试$email,如果有许多用户,请尝试再次选择并验证该用户是管理员还是
admin.php
user.php
login.php
的用户,以确定用户名和密码是否错误

<?php
        session_start();
        $mysqli = new mysqli("localhost", "root", "", "database");
    if ($mysqli->connect_errno) {
        echo "Echec lors de la connexion à MySQL : (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    }
        if (isset($_POST['submit']))
    {
        $email = $_POST['email'];
        $password = $_POST['password'];

        if( $email == "" || $password == "")
        {
            echo '<div id ="errormsg">Please fill in all fields</div>';
        }

        else 
        {
            $query = mysqli_query($mysqli, "SELECT * FROM client WHERE email = '$email'
            and password = '$password' and type = 1 ") or die ("Can't query the database");
            $count = mysqli_num_rows($query);

            if($count == 1) 
            {
                if ($email == 'admin@email.com')
                {
                    $_SESSION['email'] = $email;
                    header("location: admin.php");
                }
                else if ($email == 'user@email.com')
                {
                    $_SESSION['email'] = $email;
                    header("location: user.php");
                }
                else
                {
                    echo '<div id="errormsg">No matches, try again</div>';
                }
            }
        }
    }

    ?>

您的查询失败,您需要检查真正的错误。“无法查询数据库”对您没有帮助。此错误消息的详细信息是什么?您好,欢迎使用SO。访问以了解有关SQL注入以及如何防止它们的更多信息。您编码的方式(直接在查询中发布)根本不安全!你的数据库可能在几秒钟内被黑客入侵。您是否启用了错误报告?在文件
ini\u集的顶部尝试这些行('display\u errors',1);ini设置(“显示启动错误”,1);错误报告(E_全部)2。您是否尝试过打印($count)
要查看它是否为空?另外,在查询中,您应该将
type==1
替换为
type=1
,谢谢标记此操作成功!但我希望数据库中存在的用户能够连接并重定向到user.php,管理员不仅要连接到admin.phpuser@email.com及admin@email.com