检查表中的用户名是否带有密码

时间:2014-02-03 08:12:13

标签: php

我有一个包含用户名的表,此表有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));

2 个答案:

答案 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';
}