2016-09-27 179 views
1

好吧,所以出于某种原因,我总是得到该电子邮件已经存在,如果它没有。电子邮件已存在

public function emailExists($mail) { 
      $handler = new sql(); 
      $sql = $handler->connect(); 

      $sql->real_escape_string($mail); 

      $result = $sql->query("SELECT email FROM users WHERE email='".$mail."'"); 



      if($result->num_rows != 0) return true; 
      else { 
       $handler->log_write($mail, "register_fail","NULL"); 
       return false; 
      } 
      $sql->close(); 
      return false; 
     } 

现在这里是检查

if($user->emailExists() == false) { 
     $user->create($name, $pass, $email, $age, $gender); 
      jquery_alert("You have been registered. Thank you for using our services. Enjoy your stay!"); 
      jquery_reload(); 
     } 
     else { 
      jquery_alert("This email already exists"); 
     } 
+1

你需要指定'$ SQL-的real_escape_string()'返回变量结果>。它不修改它的论点。 – Barmar

+2

但是你真的应该学习如何使用准备好的查询来代替转义字符串。 – Barmar

回答

3

通电子邮件地址作为方法参数。

if($user->emailExists($email) == false) { 
// your code here 
} 
+0

哦,哇,我只是没有看到一个...感谢芽! –

+0

如果此答案有用,请将此答案标记为有用或投票。 –

0

在你的函数返回的默认值是假

而在你的方法还传递电子邮件地址。

尝试这种解决方案

if($user->emailExists($email) == true) { 
    $user->create($name, $pass, $email, $age, $gender); 
     jquery_alert("You have been registered. Thank you for using our services. Enjoy your stay!"); 
     jquery_reload(); 
    } 
    else { 
     jquery_alert("This email already exists"); 
    } 
相关问题