как проверить электронную почту в php?

#php #email

#php #Адрес электронной почты

Вопрос:

прошлой ночью я пытался проверить домен электронной почты перед добавлением в свою базу данных, например, я хочу добавить @hotmail.com если кто-либо напишет hotmail.c, я должен отклонить это, чтобы добавить его в свою базу данных.

это мой код php:

 <?PHP
if(isset($_POST['name']) amp;amp; isset($_POST['email']) amp;amp; 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. Вы не используете FILTER_VALIDATE_EMAIL if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) { echo("$email is a valid email address");}else{echo "not valid";}

2. Ваш код открыт для внедрения SQL, используйте подготовленные инструкции и обратите внимание, что mysql_ * закрыт в Php 7

3. Я надеюсь, что теперь у вас есть решение

4. Спасибо, я нашел решение.

Ответ №1:

Для проверки действительного адреса электронной почты вы можете использовать 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-атаки вы можете использовать подготовленные инструкции.