Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужна помощь с регулярными выражениями

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Для preg_match
Heavenanvil
Отправлено: 16 Декабря, 2016 - 07:45:30
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Здравствуйте, уважаемые гуру.
При регистрации пользователь заполняет нужные поля, валидация этих полей происходит на стороне клиента, при помощи параметра pattern, для input.
Однако, эти параметры pattern легко стереть, используя "Просмотр кода элемента".
Для большей безопасности я бы хотел сделать также проверку на стороне сервера.
Для этого мне нужно подобрать соответствующие регулярные выражения и вставить их в функцию preg_match.

Сам я конечно пробовал, но уже потерял довольно много времени и не уверен, что получается правильно.

Итак, вот мои данные:
CODE (html):
скопировать код в буфер обмена
  1. <input name="login" type="text" pattern="[A-Za-z0-9_+-.]{4,15}"> //От 4 до 15 символов. Только латинские буквы и цифры, без пробелов. А также символы _ + - .
  2. <input name="password" type="password" pattern="[A-Za-z0-9_+-.]{4,15}"> //От 4 до 15 символов. Только латинские буквы и цифры, без пробелов.  А также символы _ + - .
  3. <input name="username" type="text" pattern="[A-Za-zА-Яа-яЁё]{1,20}"> //От 1 до 20 символов. Только латинские и русские буквы.
  4. <input name="email" type="email" pattern="[A-Za-z0-9._+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{1,63}$"> //Формат электронной почты
  5. <input name="tel" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}"> //Формат XXX-XXX-XXXX (ТРИЦИФРЫтиреТРИЦИФРЫтиреЧЕТЫРЕЦИФРЫ)

Нужно на основе этих регулярных выражений создать такие, чтобы preg_match их принимал. Уже всю голову сломал.

(Отредактировано автором: 16 Декабря, 2016 - 09:06:07)

 
 Top
Строитель Модератор
Отправлено: 16 Декабря, 2016 - 22:51:00
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Heavenanvil, отредактируете код из этого примера под свой скрипт
Спойлер (Отобразить)
 
 Top
Heavenanvil
Отправлено: 17 Декабря, 2016 - 08:27:32
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Строитель, всё превосходно работает, спасибо.
Только для email я тоже регулярку использовал:
PHP:
скопировать код в буфер обмена
  1. preg_match('~^([a-z0-9_\-\.])+@([a-z0-9_\-\.])+\.([a-z0-9])+$~i', $email)

(Отредактировано автором: 17 Декабря, 2016 - 08:32:52)

 
 Top
Строитель Модератор
Отправлено: 17 Декабря, 2016 - 18:28:09
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Цитата:
Только для email я тоже регулярку использовал
Там регулярка не нужна, т.к. валидность эл.адреса проверяется в функции.
 
 Top
Heavenanvil
Отправлено: 17 Декабря, 2016 - 19:29:08
Post Id


Частый гость


Покинул форум
Сообщений всего: 183
Дата рег-ции: Февр. 2013  


Помог: 0 раз(а)




Да, я видел. FILTER_VALIDATE_EMAIL
Просто я не через массив и не через функцию данные передаю.
Мне так удобней.
В любом случае огромное спасибо за помощь.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB