Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.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 Mysql多用户登录表单_Php_Mysql - Fatal编程技术网

PHP Mysql多用户登录表单

PHP Mysql多用户登录表单,php,mysql,Php,Mysql,如何检测用户是管理员还是客户?下面显示的代码有一个if-else语句,这被认为是错误的,因为我不知道它的代码是什么,你们能帮我吗?我想检查$confirmation变量。如果它包含1,用户将转到管理页面。如果没有,则转到客户页面。我该怎么做?顺便说一句,if是admin,if-else语句中的第一个else是customer PHP代码: <?php session_start(); include("dbcon.php"); $username = $_POST['username']

如何检测用户是管理员还是客户?下面显示的代码有一个if-else语句,这被认为是错误的,因为我不知道它的代码是什么,你们能帮我吗?我想检查
$confirmation
变量。如果它包含1,用户将转到管理页面。如果没有,则转到客户页面。我该怎么做?顺便说一句,if是admin,if-else语句中的第一个else是customer

PHP代码:

<?php
session_start();

include("dbcon.php");
$username = $_POST['username'];
$password = $_POST['password'];
$qry="SELECT * FROM admininfo WHERE username='$username' AND password='$password'";
$result=mysql_query($qry);
    if($result) {
    if(mysql_num_rows($result) == 1) {
        session_regenerate_id();
        $user = mysql_fetch_assoc($result);
        //$_SESSION['fname'] = $user['fname'];
        //$_SESSION['lname'] = $user['lname'];
        //$_SESSION['username'] = $user['username'];
        //$_SESSION['password'] = $user['password'];
        $_SESSION['confirmation'] = $user['confirmation'];

        session_write_close();
        header("Location:menu.php");
        exit();
    }else {
        header("Location:menu1.php");
        exit();
    }
}else {
    die("Query failed");
}
?>

您可以为admininfo表添加另一个字段,并在此处声明用户是否为admin。例如,admininfo中有一个status字段,您的查询如下(这只是一个示例):


尝试使用MySQLi,而不是它的前身MySQL。

检查这一个谢谢您的帮助,我将测试它:)我有一个问题,==1做什么?测试出来后,错误是警告:mysqli_num_rows()期望参数1是mysqli_result,第12行的C:\xampp\htdocs\addeditdelete1\loginExec.php中给出的字符串表示是否找到了查询。您的错误表明您的查询不正确。错误在mysqli_查询(SELECT)中。请注意,将连接存储在变量中,以便在查询中使用它。和确保admininfo表中有status字段,并且没有重复的用户名、密码和状态
$yourconnection=mysqli_connect("YourHost","YourUsername","YourPassword","NameOfYourDatabase");

if(mysqli_connect_errno()){

echo "Error".mysqli_connect_error();
}

$username = mysqli_real_escape_string($yourconnection,$_POST['username']); /* prevents a bit of SQL injection */
$password = mysqli_real_escape_string($yourconnection,$_POST['password']); /* prevents a bit of SQL injection */

$qry=mysqli_query($yourconnection,"SELECT * FROM admininfo WHERE username='$username' AND password='$password' AND status='customer'");
$qryadmin=mysqli_query($yourconnection,"SELECT * FROM admininfo WHERE username='$username' AND password='$password' AND status='administrator'");

if(mysqli_num_rows($qry)==1){
header("LOCATION:CustomerPage.php");
}

else if(mysqli_num_rows($qryadmin)==1){
header("LOCATION:AdminUserPage.php");
}

else {
echo "Error! No user found.";
}