其他声明内容不会显示?

时间:2014-07-09 03:21:32

标签: php html client-side

目前,我的问题仍然存在,因为我想显示现有帐户的错误,或者如果用户创建了一个尚未存在的帐户,则会显示成功消息。出于某些奇怪的原因,即使注册成功,它仍会显示错误?有什么我做错了吗?即使它们是假的,两个if语句仍然运行???我不理解......

if ($db_found) {

    $uSQL = "SELECT * FROM login WHERE username = '$username'";
    $uresult = mysql_query($uSQL);
    $unum_rows = mysql_num_rows($uresult);

    $eSQL = "SELECT * FROM login WHERE email = '$email'";
    $eresult = mysql_query($eSQL);
    $enum_rows = mysql_num_rows($eresult);

    if ($unum_rows > 0) {
        echo '<div class="error-message"><li>Username Already Exists</li></div>';
    }
    if ($enum_rows > 0) {
        echo '<div class="error-message"><li>Email Already Exists</li></div>';
    }
    else {
        echo '<div class="success-message">successfully</div>';
    }


}

2 个答案:

答案 0 :(得分:0)

就个人而言,我会结合查询 - 并简化逻辑(并逃避输入)

if ($db_found) {

    $sql = "SELECT * FROM login WHERE username = '{mysql_real_escape_string($username)}' OR email = '{mysql_real_escape_string($email)}'";
    $result = mysql_query($sql);

    if( mysql_num_rows($result) ){
       while(false !== ($row = mysql_fetch_assoc($result))) {
          if($row['username'] == $username ){
               echo '<div class="error-message"><li>Username Already Exists</li></div>';
          }
          if($row['email'] == $email) {
               echo '<div class="error-message"><li>Email Already Exists</li></div>';
          }
        }
    }else{
        echo '<div class="success-message">successfully</div>';
    }
}

答案 1 :(得分:0)

这可能对您有所帮助

$enum_rows = mysql_num_rows($eresult);
if($unum_rows < 1)
{
 echo "Username is available";
}
else
{
 echo '<div class="error-message"><li>Username Already Exists</li></div>';
}
if($enum_rows < 1)
{
 echo '<div class="success-message">successfully</div>';
}
else
{
  echo '<div class="error-message"><li>Email Already Exists</li></div>';
}
相关问题