Почему не работает проверка майла?

Есть код:
function signUp() {
		$pdo = connectDB();
		$errors = [];
		
		$stmt = $pdo->prepare("INSERT INTO users (login, password, email) values(:login, :password, :email)");
		
		if(trim($_POST['login']) == '') {
			$errors[] = 'Введите логин';
		}
		if(trim($_POST['email']) == '') {
			$errors[] = 'Введите E-Mail';
		}
		if(filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL)){ //вот эта проверка не работает
			$errors[] = 'Вы ввели некорректный E-Mail';
		}
		if($_POST['password'] == '') {
			$errors[] = 'Введите пароль';
		}
		if($_POST['password'] != $_POST['repeat_password']) {
			$errors[] = 'Введенные пароли не совпадают';
		}
		
		if(empty($errors)) {
			$result = $stmt->execute([
			':login' => trim($_POST['login']),
			':password' => $_POST['password'],
			':email' => trim($_POST['email'])
			]);
		} else {
			echo "<div class=\"errors\" style=\"color:red\">$errors[0]</div>";
		}
	}


Все проверки работают, кроме той, что я отметил. Почему?
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
@D3lphi
Вам нужно поставить логическое отрицание перед условием, так как вы проверяете то, что email некорректен.
//\/ Здесь.
if(!filter_var(trim($_POST['email']), FILTER_VALIDATE_EMAIL)){
      $errors[] = 'Вы ввели некорректный E-Mail';
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы