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 :: проверка с помощью регулярных выражений [3]

 PHP.SU

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


 Страниц (4): « 1 2 [3] 4 »   

> Без описания
AlexAnder
Отправлено: 14 Июля, 2013 - 09:57:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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




teddy пишет:
с помощью is_integer, прежде необходимо сделать: $num = intval($_POST['num']); и все будет работать.

один из факторов качества кода определяется количеством операций.



дадаопятьэкономиянаспичках

LIME пишет:
не самую удачную

супер-пупер решений не существует Улыбка


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
Мелкий Супермодератор
Отправлено: 14 Июля, 2013 - 10:27:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




teddy пишет:
А это тоже валидный?

Да.
Почитайте RFC. Имя пользователя - на откуп почтового сервера. Там может быть практически всё что угодно.

alnik-75 пишет:
Вот цитата из описания функции is_int, псевдонимом которой является is_integer()

Они не псевдонимы, это разные функции.

AlexAnder пишет:
дадаопятьэкономиянаспичках

Не совсем. Они дадут разный результат для, например, $var = "1n";


-----
PostgreSQL DBA
 
 Top
LIME
Отправлено: 14 Июля, 2013 - 10:48:56
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




AlexAnder пишет:
супер-пупер решений не существует
причем здесь?
эти способы нельзя противопоставлять так как оба для email это один на самом деле, а именно рв
AlexAnder пишет:
дадаопятьэкономиянаспичках
и это не к месту если уж (int)$var то на is_int уже можно не проверять...там точно int теперь))
а в данной ситуации
PHP:
скопировать код в буфер обмена
  1. if(strlen($var=(int)$_POST['var'])!=8){echo 'Go away!';}
 
 Top
teddy
Отправлено: 14 Июля, 2013 - 11:17:45
Post Id


Участник


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


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




esterio
Учить конечно же нужно ) Я не это ведь имел ввиду ) Я просто выразил свое мнение о том, что если можно обойтись без регулярок - то обходимся )


Мелкий
Ну врядли каждый второй и даже 5-ый пользователь интернета обладает таковым почтовым адресом... Но раз уж это валидно...

LIME пишет:
if(strlen($var=(int)$_POST['var'])!=8){echo 'Go away!';}

Хорошая корректировка... ) для ТС отлично подойдет и себе возьму на заметку.
 
 Top
LIME
Отправлено: 14 Июля, 2013 - 11:29:54
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




teddy пишет:
Но раз уж это валидно
а я бы на сервере вообще email на валидность не проверял
есть такой тип в инпуте уже давно
достаточно экранировать от инъекции
(Добавление)
teddy пишет:
возьму на заметку.
тогда надо еще abs добавить
(Добавление)
и тогда без тестов я не берусь утверждать что менее ресурсоемко получится...вполне возможно что regexp
 
 Top
AlexAnder
Отправлено: 14 Июля, 2013 - 11:45:19
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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




LIME пишет:
есть такой тип в инпуте уже давно

хтмл5?

LIME пишет:
причем здесь?
эти способы нельзя противопоставлять так как оба для email это один на самом деле, а именно рв

ты говоришь что решение не самое удачное;
я говорю что нет универсальных решений, которые всем подходили


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
LIME
Отправлено: 14 Июля, 2013 - 11:53:24
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




AlexAnder пишет:
хтмл5?
да...поддерживается уже давно но правда ie только 10...но и фиг с ним
всеравно смысл его только в удобстве заполнения
не знаю что такого можно добиться невалидным адресом чего нельзя добиться тупо несуществующим
AlexAnder пишет:
ты говоришь что решение не самое удачное;
это говорю не я и не про решение а про регулярку которую юзает filter_var
коменты http://www.php.net/manual/ru/fil...ers.validate.php
 
 Top
AlexAnder
Отправлено: 14 Июля, 2013 - 12:01:10
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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




LIME пишет:
несуществующим
AlexAnder пишет:
ты говоришь что решение не самое удачное;
это говорю не я и не про решение а про регулярку которую юзает filter_var
коменты http://www.php.net/manual/ru/filter.filters.validate.php

божемой ты меня уже какой раз пытаешься выставить дураком, по-твоему я думаю что filter_var это какая-то супертехнология никак не использующая регэкспы?
(Добавление)
я понял что ты имел ввиду про результат работы а не про саму функцию


-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
teddy
Отправлено: 14 Июля, 2013 - 12:02:15
Post Id


Участник


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


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




LIME
Почитал про инпутовый email, спасибо - узнал что то новое )

Но опять же... привык как то все проверки укладывать на сервере ) тогда уж лучше фильтервар/регэксп, чтоб спокойнее спать ) проверки на стороне клиента настораживают.. ну как минимум будет авторитетно выглядеть проект, что не прошел e-mail типа приветДРУГ@яяябббfkjhf.повылрпвыолрпвыол - а так сразу будет складываться впечатление что делал криворукий



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

(Отредактировано автором: 14 Июля, 2013 - 12:03:00)

 
 Top
LIME
Отправлено: 14 Июля, 2013 - 12:05:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




AlexAnder пишет:
фтопку регэксп - fliter var есть
AlexAnder пишет:
ты меня уже какой раз пытаешься выставить дураком, по-твоему я думаю что filter_var это какая-то супертехнология никак не использующая регэкспы?
без комментариев))
CODE (htmlphp):
скопировать код в буфер обмена
  1.         const char regexp[] = "/^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))$/iD";

вот вам регулярочка из исходников...ыыы

(Отредактировано автором: 14 Июля, 2013 - 12:06:15)

 
 Top
AlexAnder
Отправлено: 14 Июля, 2013 - 12:05:24
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 915
Дата рег-ции: Авг. 2012  
Откуда: Россия


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




Цитата:
приветДРУГ@яяябббfkjhf.повылрпвыолрпвыол

считаю валидным - ибо есть собака и точка после собаки Радость
т.е.
Цитата:
.+@.+\..+

(Добавление)
Цитата:
без комментариев))

хаха, подскажи где нашёл исходник ?)

(Отредактировано автором: 14 Июля, 2013 - 12:07:15)



-----
Оказывается, недостаточно читать справочники, чтобы правильно писать коды. sadex ©

Форумы стали местом обучения программированию, а не решения трудных вопросов. KingStar ©
 
 Top
LIME
Отправлено: 14 Июля, 2013 - 12:08:07
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




https://github[dot]com/php/php-src
а еще можно с php.net скачать исходники для сборки

(Отредактировано автором: 14 Июля, 2013 - 12:18:44)

 
 Top
Мелкий Супермодератор
Отправлено: 14 Июля, 2013 - 14:23:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




teddy пишет:
проверки на стороне клиента настораживают..

Напрасно, очень удобная вещь.
С оговоркой - проверки на клиенте - для удобства клиента, на сервере валидация всё равно обязательна.

teddy пишет:
Ну врядли каждый второй и даже 5-ый пользователь интернета обладает таковым почтовым адресом...

Поэтому имеет смысл на клиенте повесить варнинг "вы не ошиблись при наборе адреса? такие редко бывают". Но адрес принимать. Потому что он валиден.


-----
PostgreSQL DBA
 
 Top
teddy
Отправлено: 14 Июля, 2013 - 15:12:31
Post Id


Участник


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


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




Мелкий пишет:
С оговоркой - проверки на клиенте - для удобства клиента, на сервере валидация всё равно обязательна.

Ну это само собой ) Я имел ввиду проверки только на стороне клиента, но без дополнительной проверки на сервере.

Мелкий пишет:
"вы не ошиблись при наборе адреса? такие редко бывают". Но адрес принимать. Потому что он валиден.

Ранее не думал, что такие адресы валидны т.к ни разу не встречал подобный e-mail, спасибо за подсказку...
 
 Top
LIME
Отправлено: 14 Июля, 2013 - 15:15:44
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


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




teddy пишет:
но без дополнительной проверки на сервере.
а к чему она для email? для email достаточно на клиенте
ну подделает хацкер запрос...ну пришлет невалидный email...и что???? от инъекции убереглись и достаточно
 
 Top
Страниц (4): « 1 2 [3] 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB