如何用不正确的用户名或密码显示来修复Php?

时间:2015-07-28 11:30:19

标签: php

请帮我修复此代码 我会尝试使用不正确的用户名或密码来显示 如果我把错误的数据... 如果我输入正确的数据,此代码可以显示。

它会显示

成功!

但如果我说错了什么都没发生。

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

?>

2 个答案:

答案 0 :(得分:1)

你可以做几行。

 $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";

如果用户名&amp;密码不匹配查询将返回0行。

请参阅此文章:How can I prevent SQL injection in PHP?

答案 1 :(得分:0)

这是因为你已经在里面写了条件 如果($ numRows行!= 0){ .... }

还有一件事,您将始终通过select query返回一行,因为每个用户的用户名应该是唯一的。所以,那里不需要while循环。

输入错误输入时没有得到任何内容,因为选择查询没有返回任何内容。因此,跳过了整个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;

    ?>