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