В этой главе мы покажем, как проверять имена, адреса электронной почты и URL-адреса.
Следующий код будет использовать простой способ определить, содержит ли поле имени буквы и пробелы. Если значение поля имени является недопустимым, будет выведено сообщение об ошибке:
$name = test_input($_POST["name"]);if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Разрешены только буквы и пробелы"; }
preg_match — выполняет сопоставление регулярных выражений. грамматика: int preg_match (строка $pattern, строка $subject [, массив $matches [, int $flags]]) Ищет в строке темы совпадение с регулярным выражением, заданным шаблоном. Если указаны совпадения, они будут заполнены результатами поиска. $matches[0] будет содержать текст, соответствующий всему шаблону, $matches[1] будет содержать текст, соответствующий первому захваченному подшаблону в скобках, и так далее. |
Следующий код проверит, является ли адрес электронной почты законным простым способом. Если адрес электронной почты недействителен, будет выведено сообщение об ошибке:
$email = test_input($_POST["email"]);if (!preg_match("/([w-]+@[w-]+.[w-]+)/" ,$email)) { $emailErr = "Недопустимый формат электронной почты" };
Следующий код проверит, является ли URL-адрес допустимым (в URL-адресе, содержащем дефисы, используется следующее регулярное выражение: «-»). Если URL-адрес недопустим, будет выведено сообщение об ошибке:
$website = test_input($_POST["website"]);if (!preg_match("/b(?:(?:https?|ftp)://|www.)[-a-z0- 9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$website)) { $websiteErr = «Недопустимый URL-адрес» };
Код выглядит следующим образом:
<?php// Определите переменные и установите для них пустые значения по умолчанию $nameErr = $emailErr = $genderErr = $websiteErr = "";$name = $email = $gender = $comment = $website = ""; if ($_SERVER ["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Необходимо имя" }; else { $name = test_input($_POST["name"]); // Проверяем, содержит ли имя только буквы и пробелы if (!preg_match("/^[a-zA-Z ]*$/",$name) ) { $nameErr = "Разрешены только буквы и пробелы" } } if (empty($_POST["email"])) { $emailErr = "Требуется адрес электронной почты" } else { $email =; test_input($_POST["email"]); // Проверка легальности письма if (!preg_match("/([w-]+@[w-]+.[w- ]+ )/",$email)) { $emailErr = "Недопустимый формат электронной почты"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); // Проверка правильности URL-адреса if (!preg_match("/b(?:(?:https?|ftp)://|www.) [- a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$ сайт) ) { $websiteErr = "Недопустимый URL-адрес"; } } if (empty($_POST["comment"])) { $comment = "" } else { $comment = test_input($_POST["comment"] } if); (empty($_POST["gender"])) { $genderErr = "Укажите пол" } else { $gender = test_input($_POST["пол"]); }}?>