简单PHP登录表单返回';0';mysqli_num_行。什么';我的代码逻辑有什么问题?

简单PHP登录表单返回';0';mysqli_num_行。什么';我的代码逻辑有什么问题?,php,mysqli,login,Php,Mysqli,Login,尝试创建简单的PHP登录表单,该表单采用“用户名”和“密码”,如果与'dbusername'和'dbpassword匹配,则代码应回显“您已登录”。 当我运行代码时,没有错误。页面从login.php转到process.php,但显示一个空白页面。不显示:echo“不正确的用户名或密码!”!或“您已登录!“ 我检查了一下它是否从数据库返回了任何行。我得到了0行。但为什么?!我的代码逻辑不正确?因为我的数据库连接正常,并且我在名为phplogin的数据库和表用户中有一个用户名:alex和密码:ab

尝试创建简单的PHP登录表单,该表单采用“用户名”和“密码”,如果与
'dbusername'
'dbpassword
匹配,则代码应
回显“您已登录”。

当我运行代码时,没有错误。页面从
login.php
转到
process.php
,但显示一个空白页面。不显示:echo“不正确的用户名或密码!”!或“您已登录!“

我检查了一下它是否从数据库返回了任何行。我得到了0行。但为什么?!我的代码逻辑不正确?因为我的数据库连接正常,并且我在名为
phplogin
的数据库和表
用户中有一个
用户名:alex和密码:abc

   <?php

$username = $_POST['username'];
$password = $_POST['password'];

$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'phplogin';

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT *
                      FROM users
                      WHERE username = '".$username."'
                      AND password = '".$password."'";

$result = mysqli_query($conn, $sql);

echo mysqli_num_rows($result); //   I Checked to see if I was getting no rows. *I am getting 0 rows!!* But why?!


if (mysqli_num_rows($result) > 0) {
    // output data of each row
    while($row = mysqli_fetch_assoc($result)) {

        $dbusername = $row['username'];
        $dbpassword = $row['password'];

        //check to see if the match

if($username == $dbusername && $password == $dbpassword ) {

        echo "You're Logged In!";

 } if($username != $dbusername || $password != $dbpassword) {
        echo "Incorrect password or username!";
} else {
        die("That user doesn't exist!");
}

}

}

mysqli_close($conn);
?>

$username
$password
更改为
$uname
$pass
,因为它们与数据库凭据冲突

我在代码中突出显示了在何处进行更改

<?php
$uname = mysqli_real_escape_string($_POST['username']); //Change here
$pass = mysqli_real_escape_string($_POST['password']); //Change here

$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'phplogin';

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

//Change Here
$sql = "SELECT * FROM users
            WHERE username = '".$uname."'
            AND password = '".$pass."'"; 

$result = mysqli_query($conn, $sql);

echo mysqli_num_rows($result); //   I Checked to see if I was getting no rows. *I am getting 0 rows!!* But why?!

if (mysqli_num_rows($result) > 0) {
    // output data of user
    $row = mysqli_fetch_assoc($result);
    $dbusername = $row['username'];
    $dbpassword = $row['password'];

    //check to see if the match
    if($uname == $dbusername && $pass == $dbpassword ) { //Change Here
        echo "You're Logged In!";
    } if($uname != $dbusername || $pass != $dbpassword) { //Change Here
        echo "Incorrect password or username!";
    }

} else {
        die("That user doesn't exist!");
}
mysqli_close($conn);
?>

$username
$password
更改为
$uname
$pass
,因为它们与数据库凭据冲突

我在代码中突出显示了在何处进行更改

<?php
$uname = mysqli_real_escape_string($_POST['username']); //Change here
$pass = mysqli_real_escape_string($_POST['password']); //Change here

$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'phplogin';

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

//Change Here
$sql = "SELECT * FROM users
            WHERE username = '".$uname."'
            AND password = '".$pass."'"; 

$result = mysqli_query($conn, $sql);

echo mysqli_num_rows($result); //   I Checked to see if I was getting no rows. *I am getting 0 rows!!* But why?!

if (mysqli_num_rows($result) > 0) {
    // output data of user
    $row = mysqli_fetch_assoc($result);
    $dbusername = $row['username'];
    $dbpassword = $row['password'];

    //check to see if the match
    if($uname == $dbusername && $pass == $dbpassword ) { //Change Here
        echo "You're Logged In!";
    } if($uname != $dbusername || $pass != $dbpassword) { //Change Here
        echo "Incorrect password or username!";
    }

} else {
        die("That user doesn't exist!");
}
mysqli_close($conn);
?>

$username
$password
更改为
$uname
$pass
,因为它们与数据库凭据冲突

我在代码中突出显示了在何处进行更改

<?php
$uname = mysqli_real_escape_string($_POST['username']); //Change here
$pass = mysqli_real_escape_string($_POST['password']); //Change here

$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'phplogin';

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

//Change Here
$sql = "SELECT * FROM users
            WHERE username = '".$uname."'
            AND password = '".$pass."'"; 

$result = mysqli_query($conn, $sql);

echo mysqli_num_rows($result); //   I Checked to see if I was getting no rows. *I am getting 0 rows!!* But why?!

if (mysqli_num_rows($result) > 0) {
    // output data of user
    $row = mysqli_fetch_assoc($result);
    $dbusername = $row['username'];
    $dbpassword = $row['password'];

    //check to see if the match
    if($uname == $dbusername && $pass == $dbpassword ) { //Change Here
        echo "You're Logged In!";
    } if($uname != $dbusername || $pass != $dbpassword) { //Change Here
        echo "Incorrect password or username!";
    }

} else {
        die("That user doesn't exist!");
}
mysqli_close($conn);
?>

$username
$password
更改为
$uname
$pass
,因为它们与数据库凭据冲突

我在代码中突出显示了在何处进行更改

<?php
$uname = mysqli_real_escape_string($_POST['username']); //Change here
$pass = mysqli_real_escape_string($_POST['password']); //Change here

$servername = 'localhost';
$username = 'root';
$password = '';
$dbname = 'phplogin';

// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

//Change Here
$sql = "SELECT * FROM users
            WHERE username = '".$uname."'
            AND password = '".$pass."'"; 

$result = mysqli_query($conn, $sql);

echo mysqli_num_rows($result); //   I Checked to see if I was getting no rows. *I am getting 0 rows!!* But why?!

if (mysqli_num_rows($result) > 0) {
    // output data of user
    $row = mysqli_fetch_assoc($result);
    $dbusername = $row['username'];
    $dbpassword = $row['password'];

    //check to see if the match
    if($uname == $dbusername && $pass == $dbpassword ) { //Change Here
        echo "You're Logged In!";
    } if($uname != $dbusername || $pass != $dbpassword) { //Change Here
        echo "Incorrect password or username!";
    }

} else {
        die("That user doesn't exist!");
}
mysqli_close($conn);
?>
请创建一个notepad++dbconnection.php文件并复制此代码
----------------------------------------------------------
请创建一个notepad++index.php文件并复制此代码
你的头衔
用户类型
:
管理
使用者
客人
用户名
:
密码
:
-------------------------------------------------------------------
请创建一个notepade++login_check.php文件并复制此代码
请创建一个notepad++dbconnection.php文件并复制此代码
----------------------------------------------------------
请创建一个notepad++index.php文件并复制此代码
你的头衔
用户类型
:
管理
使用者
客人
用户名
:
密码
:
-------------------------------------------------------------------
请创建一个notepade++login_check.php文件并复制此代码
请创建一个notepad++dbconnection.php文件并复制此代码
----------------------------------------------------------
请创建一个notepad++index.php文件并复制此代码
你的头衔
用户类型
:
管理
使用者
客人
用户名
    Please create a notepade++ dbconnection.php file and copy this code

           <?php
                mysql_connect("localhost","root","");
                mysql_select_db("dabasename");
            ?>
    ----------------------------------------------------------

    Please create a notepade++ index.php file and copy this code

        <!DOCTYPE HTML>
        <html lang="en-US">
        <head>
            <meta charset="UTF-8">
            <title></title>
            <meta name = "viewport" content = "width=device-width,initial-                      scale=1" />
            <link rel="shortcut icon" type = "image/jpg" href="images.jpg" />
            <link rel="stylesheet" type = "text/css" href = "css/style.css" />
            <link rel="stylesheet" type = "text/css" href = "css/bootstrap.css" />
            <link rel="stylesheet" type = "text/css" href = "css/bootstrap.min.css" />
        </head>
        <body>
            <div id = "container">
             <div id = "login_header">
              <div id = "login_text">YOur Title</div>
             </div>
             <div id = "login_content">
                <img src = "images.jpg" width = "100%" height = "150px" />
                <table width = "100%" style = "margin-top:25px;">
                    <form name = "frmLogIn" action = "login_check.php" method = "post">
                        <tr>
                            <td width = "10%"></td>
                            <td width = "20%">User Type</td>
                            <td width = "10%">:</td>
                            <td width = "50%">
                             <select name = "optUserType" class = "form-control">
                              <option></option>
                              <option>Admin</option>
                              <option>User</option>
                              <option>Guest</option>
                             </select>
                            </td>
                            <td width = "10%"></td>
                        </tr>

                        <tr>
                            <td width = "10%"></td>
                            <td width = "20%">Username</td>
                            <td width = "10%">:</td>
                            <td width = "50%"><input type = "text" name = "txtUsername" class = "form-control" /></td>
                            <td width = "10%"></td>
                        </tr>
                        <tr>
                            <td width = "10%"></td>
                            <td width = "20%">Password</td>
                            <td width = "10%">:</td>
                            <td width = "50%"><input type = "password" name = "txtPassword" class = "form-control" /></td>
                            <td width = "10%"></td>
                        </tr>
                        <tr><td colspan = "5">&nbsp;</td></tr>
                        <tr><td colspan = "5" align = "center"><input type = "submit" name = "btnLogIn" value = "Log In" class = "btn btn-info" style = "width:100px;"/></td></tr>
                    </form>
                </table>
             </div>
             <div id = "login_footer"></div>
            </div>
        </body>
        </html>

     -------------------------------------------------------------------
     Please create a notepade++ login_check.php file and copy this code 
    <?php
        session_start();
        require('dbconnection.php');
        if(isset($_POST['btnLogIn']))
        {
            $userType = mysql_real_escape_string($_POST['optUserType']);
            $username = mysql_real_escape_string($_POST['txtUsername']);
            $password = mysql_real_escape_string($_POST['txtPassword']);
            $sql = "SELECT * FROM `tbl_user` WHERE user_type = '$userType' AND username = '$username' AND password = '$password'";
            $query = mysql_query($sql);
            $row = mysql_fetch_array($query);
            if(mysql_affected_rows())
            {
                $_SESSION['user_code'] = $row['username'];
                $_SESSION['password'] = $row['password'];
                //header('Location:home.php');
                echo "you have logged in";
            }
            else
            {
                //header('Location:home.php');
               echo "you coud not logged in!";
            }
        }
    ?>