Делаю регистрацию. Написал шаблоны для имени, фамилии и т.д. с помощью регулярных выражений. Делаю простую конструкцию:
<?php
$name = "Іван";
$surname = "Петренко";
$email = "petrenko@gmail.com";
$pass = "ivan123";
if (preg_match("/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/", $email)){
if (preg_match("/^[А-ЯІЇ]{1}[а-яії]{2,11}$/", $name)){
if (preg_match("/^[А-ЯІЇ]{1}[а-яії]{2,11}$/", $surname)){
if (preg_match("([A-z0-9-_]{6,25})", $pass)){
// здесь дальнейшие действия с регистрацией
}
else echo "Pass error";
}
else echo "Surname error";
}
else echo "Name error";
}
else echo "Email error";
?>
И при таком раскладе оно мне выводит "Name error"
, хотя как мы видим, что имя проходит по шаблону.
Подскажите, пожалуйста, что не так и как исправить. И правильно ли я делаю логику для регистрации?
Вы как бы работаете с кодировкой UTF-8, соответственно в регулярных выражениях следует указывать модификатор u для их правильного функционирования:
/^[А-ЯІЇ][а-яії]{2,11}$/u
И последняя регулярка у вас не регулярку
/([a-z0-9_-]{6,25})/i
P.S. Но такое ограничение на имена, фамилии, пароли, да и email есть зло!
Виртуальный выделенный сервер (VDS) становится отличным выбором
Даны строки A и BЕсли в A есть повторяющиеся символы, а в B нет повторяю- щихся символов, то упорядочить символы B в алфавитном порядке и удалить...
Не удается подключить библиотеку zlib к проекту
Добрый вечер! Необходимо реализовать полностью без CRT
Учился раньше на NetBeansРешил попробовать один из самых известных компиляторов