[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Правильно ли составленное условие ?
Oggy
Здравствуйте.
Немогу запретить символы в поле. Пробую так:

if (!preg_match('[a-z]',$_POST['login']) && !preg_match('[a-z]',$_POST['password']))

я хочу чтобы пользователь вводил только латинские буквы но код пропускает цыфры...подскажыте как правильно пользоваться етой ф-ией...



Спустя 18 минут, 49 секунд (21.07.2012 - 17:58) pak написал(а):
а так?
if (!preg_match('#[a-z]#',$_POST['login']) && !preg_match('#[a-z]#',$_POST['password']))

Спустя 5 минут, 32 секунды (21.07.2012 - 18:04) pak написал(а):
Если проверка только на буквы латинские, то можно без регулярок, использовать функцию ctype_alpha

$s = 'admin';
if(ctype_alpha($s))
echo 'да';
else
echo 'нет';

Спустя 1 минута, 49 секунд (21.07.2012 - 18:06) Oggy написал(а):
Цитата (pak @ 21.07.2012 - 14:58)
а так?
if (!preg_match('#[a-z]#',$_POST['login']) && !preg_match('#[a-z]#',$_POST['password']))

да - оно. Спасибо. Только без знака восклицания.

Спустя 1 час, 39 минут, 1 секунда (21.07.2012 - 19:45) Winston написал(а):
Вот так нужно
if (!preg_match('#^[a-z]+$#u',$_POST['login']) || !preg_match('#^[a-z]+$#u',$_POST['password']))
echo 'error';


Т.к. эта проверка
Цитата (pak @ 21.07.2012 - 17:58)
if (!preg_match('#[a-z]#',$_POST['login']) && !preg_match('#[a-z]#',$_POST['password']))

Будет до одного места, т.к. пропустит любые символы, достаточно будет лишь добавить туда один латинский символ.
Например введи в поле логин и пароль вот такое значение "h превед медвед" и оно будет пропущено.

Спустя 1 час, 49 минут, 27 секунд (21.07.2012 - 21:34) Oggy написал(а):
Цитата (Winston @ 21.07.2012 - 16:45)
Вот так нужно
if (!preg_match('#^[a-z]+$#u',$_POST['login']) || !preg_match('#^[a-z]+$#u',$_POST['password']))
echo 'error';


Т.к. эта проверка
Цитата (pak @ 21.07.2012 - 17:58)
if (!preg_match('#[a-z]#',$_POST['login']) && !preg_match('#[a-z]#',$_POST['password']))

Будет до одного места, т.к. пропустит любые символы, достаточно будет лишь добавить туда один латинский символ.
Например введи в поле логин и пароль вот такое значение "h превед медвед" и оно будет пропущено.

об*яните вот етот участок кода
#^[a-z]+$#u
он конкретно запрещает символы:#^[a-z]+$#u
или там скобки [ ] нужны для задания промежутка ?
как правильно составлять свою функцыю preg_match ?

Спустя 58 минут, 45 секунд (21.07.2012 - 22:33) Winston написал(а):
Цитата (Oggy @ 21.07.2012 - 21:34)
он конкретно запрещает символы:#^[a-z]+$#u

Они означают, что от начала и до конца строки не должно быть ничего кроме символов a-z
Цитата (Oggy @ 21.07.2012 - 21:34)
или там скобки [ ] нужны для задания промежутка ?

Да.

Цитата (Oggy @ 21.07.2012 - 21:34)
как правильно составлять свою функцыю preg_match ?

Нужно учить регулярные выражения wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.