如何修复显示错误用户名或密码的Php?

如何修复显示错误用户名或密码的Php?,php,Php,请帮我修复这个代码 我正在尝试处理错误的用户名或密码,将显示 如果我输入了错误的数据。。。 如果我输入了正确的数据,则可以显示此代码 它将显示 成功 但如果我错了,什么也不会发生 <?php if (isset($_POST["submit"])): $user = $_POST['user']; $pass = $_POST['pass']; $con = mysql_connect('localhost', 'root', ''); mysql_s

请帮我修复这个代码 我正在尝试处理错误的用户名或密码,将显示 如果我输入了错误的数据。。。 如果我输入了正确的数据,则可以显示此代码

它将显示

成功

但如果我错了,什么也不会发生

<?php

if (isset($_POST["submit"])):

    $user = $_POST['user'];
    $pass = $_POST['pass'];

    $con = mysql_connect('localhost', 'root', '');
    mysql_select_db('login') or die ("cannot select DB");

    $query = mysql_query("SELECT * FROM userdata WHERE  username='" . $user . "' AND password='" . $pass . "'");
    $numrows = mysql_num_rows($query);

    if ($numrows != 0) {
        while ($row = mysql_fetch_assoc($query)) {
            $dbusername = $row['username'];
            $dbpassword = $row['password'];
        }

        if ($user == $dbusername && $pass == $dbpassword) {
            echo '<b>Success!</b>';
        } else {
            echo ' incorrect Username or Password ';
        }

    }

endif;

?>

您只需几行即可完成

 $query = mysql_query("SELECT userId FROM userdata WHERE  username='".$user."' AND password='".$pass."'");


//$numrows=mysql_num_rows($query);
if(mysql_num_rows($query) == 1)
{
  echo "success";
}
else
  echo "Error";
如果用户名和密码不匹配,查询将返回0行


请参阅本文:

这是因为您已将条件写在其中 如果($numrows!=0){ .... }

还有一件事,select查询将始终返回一行,因为用户名对于每个用户都应该是唯一的。所以,不需要while循环

输入错误的输入时,您没有得到任何信息,因为select查询没有返回任何信息。因此,跳过了整个if($numrows!=0){…}

    <?php
    if(isset($_POST["submit"])):

         $user=$_POST['user'];
         $pass=$_POST['pass'];

         $con=mysql_connect('localhost', 'root', '');
         mysql_select_db('login') or die ("cannot select DB");

         $query=mysql_query("SELECT username, password FROM userdata WHERE  username='".$user."' AND password='".$pass."'");
         $numrows=mysql_num_rows($query);

        if($numrows!=0)
        {
         $dbusername=$row['username'];
         $dbpassword=$row['password'];
        }

        if($user == $dbusername && $pass == $dbpassword)
        {
            echo'<b>Success!</b>';
        }
        else 
        {
           echo' incorrect Username or Password ';
        }
    endif;

    ?>  

如果我将此用作密码:
测试”或“a”=“a
?无论使用哪个用户名,它都会接受它。换句话说:您的脚本对SQL注入非常开放!请更新它
MySQLi()
PDO()
并使用准备好的语句。它的错误。现在我甚至不能展示成功。。但谢谢你的回答。:)谢谢你的回答,它工作正常。。我把代码改成了这个。。thnx:3