function SQL_QUERY_LOGIN_BY_SCHOOLCODE($con, $username, $opt=""){
if(is_resource($con)){
$q = "SELECT * FROM users WHERE username = '$username";
$result = mysql_query($q);
$row = mysql_fetch_array($result);
$count = mysql_num_rows($result);
if($count == 0) return $opt="0";
if($count > 1) return $opt="1";
}
}
$mysql_login_result = SQL_QUERY_LOGIN_BY_USERNAME(MYSQL_LINK, $form_username, 1);
if($mysql_login_result == 0){
$message = "User not registered, please register!";
}else{
$message = "Success!";
}
伙计我有上面的代码来检查用户名是否存在,但是当我输入用户表中存在的用户名时,它仍然回显用户未注册的消息,我的代码出了什么问题?
答案 0 :(得分:0)
这部分
if($count == 0) return $opt="0";
if($count > 1) return $opt="1";
您应该检查计数是否为> 0不是一个,因为只有1行用户名,而不是> 1行;
if($count == 0) return $opt="0";
if($count > 0) return $opt="1";
也没有必要使用变量$ opt,也不需要使用字符串作为return,只返回一个整数
if($count == 0) return 0;
if($count > 1) return 1;
或简单的一个班轮:
return ($count > 1) 1 : 0;
并查看有关SQL注入的注释等等。