2014-07-09 82 views
0

目前,我的问题仍然存在,因为如果用户创建一个不存在的帐户,我想显示现有帐户的错误或成功消息。出于某种奇怪的原因,即使注册成功,它仍会显示错误?有什么我做错了吗?即使它们是假的,这两个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>'; 
    } 


} 
+0

我建议你会给你的变量一个描述性的名字。 – bumbumpaw

+0

您是否尝试过打印出您的实际查询并在phpmyadmin中运行它们以确保它们正常工作并返回您期望的正确结果。 – ArtisticPhoenix

+0

您可以使用您当前拥有的逻辑获得成功并发生错误,例如$ unum_rows> 0 && $ enum_rows == 0,您将收到邮件的名称和成功错误。 – ArtisticPhoenix

回答

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>'; 
    } 
} 
+0

感谢您的帮助:)。我做了一些更多的研究,并加入了这一点代码,它终于可以工作了! – user3757779

+0

当然很高兴我能帮上忙。 – ArtisticPhoenix

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