2016-10-22 105 views
0

我昨天晚上在我添加到我的数据库之前试图检查电子邮件域名,例如我想add @ hotmail.com,如果任何一个写入hotmail.c我必须拒绝将它添加到我的数据库中。如何检查电子邮件在PHP?

这是我的代码的PHP:

<?PHP 
if(isset($_POST['name']) && isset($_POST['email']) && isset($_POST['password'])){ 
include_once("connection12.php"); 
    $email1 = $_POST['email']; 
    $SQL = "SELECT email FROM registration WHERE email = '$email1'"; 
     $result = mysql_query($SQL); 
    $num_rows = mysql_num_rows($result); 

    if ($num_rows > 0) { 

    echo "email already taken"; 

    } 
else{ 
      $name = $_POST['name']; 
     $email = $_POST['email']; 
     $password = $_POST['password']; 
mysql_query("insert into registration(name, email, password) values('$name', '$email', '$password')"); 
     echo "Data Submit Successfully"; 
     }   
    } 
?> 
+1

U van使用FILTER_VALIDATE_EMAIL'if(!filter_var($ email,FILTER_VALIDATE_EMAIL)=== false){ echo(“$ email is a valid email address”);} else {echo“not valid”;}' – devpro

+0

你的代码是打开的SQL注入使用准备好的语句,并注意mysql_ *关闭在PHP 7 – devpro

+0

我希望你现在得到了解决方案 – devpro

回答

0

用于验证有效的电子邮件地址,你可以使用FILTER_VALIDATE_EMAIL

FILTER_VALIDATE_EMAIL过滤器验证的电子邮件地址。

基本示例:

if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) { 
// insert record 
} 
else{ 
echo "not valid email"; 
} 

最重要的是,mysql_ *已被弃用,在Php 7

关闭,你的代码是开放的SQL注入,以防止你可以使用SQL攻击准备好的陈述