PHP 5.2 preg_match () ошибка компиляции - PullRequest
5 голосов
/ 22 октября 2011

Очень хотел бы помочь.Мои обновления на стороне сервера привели к тому, что моя форма комментария вызвала две ошибки проверки.Первый: preg_match () возвращает предупреждение: preg_match () [function.preg-match]: ошибка компиляции: диапазон не соответствует порядку в классе символов по смещению 13 в [расположение скрипта здесь и ошибка строки] - второй на предметной проверке всмещение 14.

Это делается при проверке адреса электронной почты:

if (preg_match('/[^a-zA-Z0-9_-.]/', $_POST['txtEmail']))

и при проверке темы:

if (preg_match('/[^a-zA-Z0-9:?-. ]/', $_POST['txtSubject']))

Я не знаком с PHP, но могу сократитьи вставьте!Мой веб-сайт frowey.com, и это форма комментариев для связи с нами, которая начала выдавать ошибку после размещения обновлений ОС.Заранее спасибо.

Ответы [ 2 ]

9 голосов
/ 22 октября 2011

Вам нужно убежать от - минуса. Это имеет особое значение для классов символов, как подсказывает сообщение об ошибке. Используйте обратную косую черту перед минусом:

preg_match('/[^a-zA-Z0-9_\-.]/'

(В качестве альтернативы - может быть первым или последним элементом в группе символов, поэтому он теряет свою специальную функцию.)

1 голос
/ 22 октября 2011
if (preg_match('/[^a-zA-Z0-9_\.-]/', $_POST['txtEmail']))

if (preg_match('/[^a-zA-Z0-9:\?\.-]/', $_POST['txtSubject']))
...