if(isset($_POST['login'])) {
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
if(empty($username) || empty($password)) {
$error = 1;
$error_message = 'Please fill in all the required fields.';
} else {
get_login_name($username, $password);
//The commented line works...
//$query = mysql_query("SELECT /* user_logged true, page login */username, password FROM members WHERE username = '".$username."' AND password = '".sha1($password)."' LIMIT 1");
}
if(mysql_num_rows(get_login_name($username, $password)) == 0) {
echo get_login_name($username, $password);
$error = 1;
$error_message = 'Incorrect username or password.';
} elseif ($error == 0) {
//Other stuff....
}
}
功能:PHP用户登录ANF功能
function get_login_name($password, $username) {
global $myDB;
global $config;
$query = "SELECT /* page == login, functions.php */username, password FROM members WHERE username = '".$username."' AND password = '".sha1($password)."' LIMIT 1";
$result = $myDB->Execute($query) or die(GetDbError($myDB->ErrorMsg()));
return $result;
}
如何正确检查,如果用户名或密码不正确的? (部分,如果(mysql_num_rows(G .....) 在我看来事情错了,我已经做了红外功能get_login_name,返回和检查顺便提一下,利用ADODB
编辑:。 毕竟我决定有点测试它,所以,让我们现在就离开的功能,因为它让我们检查用户名和密码的一部分:
if (!is_null(get_login_name($password, $username))) {
echo get_login_name($password, $username);
$error = 1;
$error_message = 'Incorrect username or password.';
}
如果用户名或密码不正确IR给我: 用户名,密码这意味着结果并没有发现在所有(没有用户,如果用户正确给出相同的结果)
好吧,让我们输入有效的用户和传球,并gaves: 用户名,密码为零,0a706ce75f3bc195c8ed7be5a21d3766abb0d384
有什么不对?
请填写您的密码。 :-) – 2011-05-13 19:09:01
我认为你需要检查>而不是==。 – makyol 2011-05-13 19:19:26