Перейти к содержимому

Валидация форм PHP: поля URL и Email

Валидация форм — важный аспект веб-разработки на PHP, обеспечивающий точность данных, введенных пользователями, и их соответствие определенным требованиям до обработки. В этой статье основное внимание будет уделено валидации полей форм для email и URL в PHP.

Валидация полей Email

Поля email можно валидировать с помощью функции filter_var в PHP. Эта функция позволяет проверить строку на соответствие формату адреса электронной почты. Если формат email правильный, функция вернет true; в противном случае — false.

Ниже приведен пример валидации поля email с помощью функции filter_var:

Пример на PHP: валидация поля email с помощью функции filter_var

php
<?php
  $email = "[email protected]";
  if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo "Invalid email format";
  } else {
    echo "Valid email format";
  }
?>

Также можно валидировать поля email с помощью регулярных выражений. Регулярное выражение — это шаблон, используемый для сопоставления определенных строк. В данном случае вы можете использовать регулярное выражение для проверки правильного формата адреса электронной почты.

Ниже приведен пример валидации поля email с помощью регулярного выражения:

Пример на PHP: валидация поля email с помощью регулярного выражения

php
<?php
  $email = "[email protected]";
  if (!preg_match("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/", $email)) {
    echo "Invalid email format";
  } else {
    echo "Valid email format";
  }
?>

Примечание: Хотя регулярные выражения могут проверять форматы, для продакшена обычно рекомендуется использовать filter_var с FILTER_VALIDATE_EMAIL или FILTER_VALIDATE_URL. Он надежнее обрабатывает граничные случаи, соответствующие RFC, и международные доменные имена, чем пользовательские регулярные выражения.

Валидация полей URL

Поля URL можно валидировать с помощью функции filter_var в PHP. Эта функция позволяет проверить строку на соответствие формату URL. Если формат URL правильный, функция вернет true; в противном случае — false.

Ниже приведен пример валидации поля URL с помощью функции filter_var:

Пример на PHP: валидация поля URL с помощью функции filter_var

php
<?php
  $url = "https://www.example.com";
  if (!filter_var($url, FILTER_VALIDATE_URL)) {
    echo "Invalid URL format";
  } else {
    echo "Valid URL format";
  }
?>

Также можно валидировать поля URL с помощью регулярных выражений. Регулярное выражение — это шаблон, используемый для сопоставления определенных строк. В данном случае вы можете использовать регулярное выражение для проверки правильного формата URL.

Ниже приведен пример валидации поля URL с помощью регулярного выражения:

Пример на PHP: валидация поля URL с помощью регулярного выражения

php
<?php
  $url = "https://www.example.com";
  if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $url)) {
    echo "Invalid URL format";
  } else {
    echo "Valid URL format";
  }
?>

Примечание: То же самое относится и к валидации URL. Встроенные фильтры оптимизированы для точности и безопасности.

Валидация против Санитизации: Валидация проверяет, соответствует ли данные ожидаемому формату. Она не удаляет и не экранирует опасные символы. В целях безопасности всегда сочетайте валидацию с санитизацией (например, используя filter_var($input, FILTER_SANITIZE_EMAIL)) перед сохранением или использованием данных.

В заключение, валидация форм — важный аспект веб-разработки на PHP, обеспечивающий безопасность и корректный формат данных, отправленных пользователями, до их обработки.

Practice

Какие из следующих утверждений о формах PHP, URL и электронной почте являются верными?

Считаете ли это полезным?

Предпросмотр dual-run — сравните с маршрутами Symfony на продакшене.