[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проверка на что-то кроме..
AlmazDelDiablo
Чтож. Скрипт мой почти заработал, но есть одно НО. Проверка на символы в введнных даных не работает. Он считает любые данные, введенные в форму не удовлетворительными.
Дайте, пожалуйста, ПОЛНЫЙ мануал по поиску ссответствий или несоответствий в preg_match(). Ибо вот это:
!preg_match( "/^[a-z0-9_.-]+@([a-z0-9]+\.)+[a-z]{2,6}$/i", $_POST['l2_acc_nick'] . $_POST['l2_acc_pass1'] . $_POST['l2_acc_pass2'] )
я не понимаю. Мне просто дали код, в котором для меня все непонятно и запутано. Читал в книжке, но там эта тема затронута мельком и оттуда я ничего не этот счет не понял.
Или же, если такого мануала нет (в чем я сомневаюсь), распишите пожалуйста, что делает этот код (см. выше).

ПС: код должен проверять, есть ли в строке что-то, кроме цифр и латинских букв. В случае, если есть - слать ошибку.



Спустя 7 минут, 18 секунд (17.09.2010 - 13:02) Ice написал(а):
В книге для тебя будет еще более непонятно, а тут похоже на проверку мыла.

Код делает:
^ -начало строки
[a-z0-9_.-]+ следует хотя бы один (+) символ, который находится в символьном классе
@ - далее следует собака
([a-z0-9]+\.)+ - далее следует хотя бы один символ, который находится в символьном классе (точка экранируется)
[a-z]{2,6} далее следует от двух до шести символов в символьном классе.
$ - конец строки


Но ентот код не идеален с точки зрения, что здесь сохраняющие группировки, а надо несохраняющие тоесть не просто ( ), а (?: ), но и так сойдет)

Спустя 3 минуты, 22 секунды (17.09.2010 - 13:05) AlmazDelDiablo написал(а):
Хмм... т.е. если убрать экранируемую точку и собачку, то будет работать как проверка логина и пароля (не должно быть ничего, кроме цифр и букв латинского алфавита).

Спустя 15 минут, 12 секунд (17.09.2010 - 13:21) ZSH написал(а):
{2,6} от 2 до 6 символов.

проверяй каждое поле оддельно

if(!preg_match( "/^[a-z0-9_.-]+@([a-z0-9]+\.)+[a-z]{2,6}$/i", $_POST['l2_acc_nick'])
echo 'Не то!!!';

if(!preg_match( "/^[a-z0-9_.-]+@([a-z0-9]+\.)+[a-z]{2,6}$/i", $_POST['l2_acc_pass1'])
echo 'Не То!!!';

if($_POST['l2_acc_pass1'] !== $_POST['l2_acc_pass2'])
echo 'не совпадают!!!';

Спустя 27 минут, 6 секунд (17.09.2010 - 13:48) Ice написал(а):
Цитата (AlmazDelDiablo @ 17.09.2010 - 14:05)
Хмм... т.е. если убрать экранируемую точку и собачку, то будет работать как проверка логина и пароля (не должно быть ничего, кроме цифр и букв латинского алфавита).


Да лучше отдельно проверку написать, благо это не трудно. Паттерн будет выглядеть так:

/^[a-z0-9]+$/ui, все конструкции которого я описал ранее, за исключением модификатора i. Он означает регистронезависимость, то есть:
/[A-Za-z0-9]+/ = /[a-z0-9]+/i
А также следует поставить модификатор u, чтобы паттерн корректно отрабатывал при Юникоде.
Расставлять модификаторы можно в любом порядке: iu = ui

Спустя 1 час, 7 минут, 34 секунды (17.09.2010 - 14:55) AlmazDelDiablo написал(а):
Ice
Спасибо огромное! Чтобы я без тебя делал smile.gif Теперь стало все по большей части понятно, буду теперь пробовать.

ZSH
И тебе спасибо )

Спустя 6 часов, 15 минут, 51 секунда (17.09.2010 - 21:11) twin написал(а):
Вот тут начали цикл стаей. Пока немного, но что то есть уже.

Спустя 9 минут, 54 секунды (17.09.2010 - 21:21) ZSH написал(а):
О супер, про регулярки полезно.



_____________
Блог | VK | GitHub | Twitch
Быстрый ответ:

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