我有一个包含用户名的表,此表有2列(用户名和密码)。
假设我在这张表中有2条记录。例如:
user1
是密码为1234
的用户名
user2
,密码为空
以下代码检查username
是否有值。
如果有值:$response = "Yes"
如果用户名不存在:$response = "No"
现在我想检查username
是否存在空密码,然后设置
$response="No"
这是我的代码
$link = mysql_connect($server,$user,$pass);
mysql_select_db($db);
$response = 'no';
if(isset($_POST['username']) && trim($_POST['username']) != ''){
$query = mysql_query("SELECT * FROM prochatrooms_users WHERE username = '".mysql_escape_string(trim($_POST['username']))."'", $link);
if(mysql_num_rows($query) > 0){
$response = 'yes';
}
}
echo json_encode(array('exists' => $response));
答案 0 :(得分:0)
只需将此行AND password !=''
添加到您的查询
$link = mysql_connect($server,$user,$pass);
mysql_select_db($db);
$response = 'no';
if(isset($_POST['username']) && trim($_POST['username']) != ''){
$query = mysql_query("SELECT * FROM prochatrooms_users WHERE username = '".mysql_escape_string(trim($_POST['username']))."' AND password !='' ", $link);
if(mysql_num_rows($query) > 0){
$response = 'yes';
}
}
echo json_encode(array('exists' => $response));
答案 1 :(得分:0)
作为第一个提示,在使用SQL时不要使用查询连接。我强烈建议使用此方法:How can I prevent SQL injection in PHP?。您的方法使您的登录系统极易受到SQL注入和攻击者的攻击。</ em>
如果要检查密码是否为空,可以尝试以下方法:
if ( trim($_POST['password']) == '') {
$response = 'no';
}