<?php
if(!empty($_POST))
{
if(isset($_POST['submit'])) // Если нажата кнопка, то…
{
$author = $_POST['author'];
// Обрабатываем $author
if(empty($author)) // если пустая
{
echo "<p style='color:red;'>Вы не ввели имя! Поле обязательно для заполнения!</p>";
}
if(!preg_match("|^[а-яеА-Я]$i|", $author))
{
echo "<p style='color:red;'>Имя должно содержать буквы русского алфавита</p>";
}
$author = htmlspecialchars($author);
$author = trim($author);
$author = stripslashes($author);
}
}
?>
это код проверки.
При проверке на правильность ввода имени таким способом
if(!preg_match("|^[а-яеА-Я]$|i", $author))
выводит всегда, чтобы не ввел:
{
echo "<p style='color:red;'>Имя должно содержать буквы русского алфавита</p>";
}
Когда таким способом:
if(!preg_match("|^[а-яеА-Я]$i|", $author))
то все норм.
Почему?
к примеру майл проверять, вот этот момент (
$i|
) в конце строки выглядит так ($|i
)а почему он при проверке русских букв не работает как надо. Ведь это говорит от том, что конец строки $ и не зависть от регистра i. не пойму… объяните?!