请帮我修复此代码 我会尝试使用不正确的用户名或密码来显示 如果我把错误的数据... 如果我输入正确的数据,此代码可以显示。
它会显示
成功!
但如果我说错了什么都没发生。
<?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;
?>
答案 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行。
答案 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;
?>