我不知道为什么php忽略if语句,也不执行检查。
<?php
require 'default.php';
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
if (mysql_num_rows(mysql_query("SELECT `username` FROM `users` WHERE `username`='$username'"))==1
&& mysql_num_rows(mysql_query("SELECT `password` FROM `users` WHERE `password`='$password'"))==1){
echo 'you Have logged in successfully';
}else{
echo 'Incorrect username or password had been entered!';
}
}
?>发布于 2012-11-01 18:29:28
如果一个用户提供了用户名,而另一个用户提供了密码,该怎么办?它登录了吗?
请这样更改您的代码:
if (mysql_num_rows(mysql_query("SELECT `username` FROM `users` WHERE `username`='$username' AND `password`='$password'"))==1)发布于 2012-11-01 18:35:20
mysql_num_rows()返回值可能大于1,可能是?
<?php
require 'default.php';
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
if (
mysql_num_rows(mysql_query("SELECT `username` FROM `users` WHERE `username`='$username' LIMIT 0,1"))==1
&&
mysql_num_rows(mysql_query("SELECT `password` FROM `users` WHERE `password`='$password' LIMIT 0,1"))==1
) {
echo 'you Have logged in successfully';
}
else {
echo 'Incorrect username or password had been entered!';
}
}
?>或者改用>0。
<?php
require 'default.php';
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
if (
mysql_num_rows(mysql_query("SELECT `username` FROM `users` WHERE `username`='$username'")) > 0
&&
mysql_num_rows(mysql_query("SELECT `password` FROM `users` WHERE `password`='$password'")) > 0
) {
echo 'you Have logged in successfully';
}
else {
echo 'Incorrect username or password had been entered!';
}
}
?>或者让它变得简单...
<?php
require 'default.php';
if(isset($_POST['submit'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysql_real_escape_string($username);
$password = mysql_real_escape_string($password);
if (intval(mysql_result(mysql_query(sprintf("SELECT COUNT(*) AS found FROM `users` WHERE `username`='%s' AND `password`='%s'",$username,$password)),0)) > 0 ) {
echo 'you Have logged in successfully';
}
else {
echo 'Incorrect username or password had been entered!';
}
}
?>https://stackoverflow.com/questions/13175120
复制相似问题