Intereting Posts
лучший способ избежать и создать слизню Почему возникает эта ошибка PHP: «Строгие стандарты: mysqli :: next_result (): следующего набора результатов нет».? случайная ошибка symfony: ContextErrorException: Warning: simplexml_load_file (): предупреждение ввода-вывода: не удалось загрузить внешний объект Как вернуть только имя файла с помощью glob () в php Лучший способ предотвращения азартных игр с анонимным голосованием Разбирайте таблицу html с помощью file_get_contents в php-массив Поиск доступности с MySQL (и PHP)? PHP round ($ num, 2) и javascript toFixed (2) не дают правильного вывода для этого значения 53.955 Невозможно получить запрос JSON POST в PHP Как лучше всего использовать PHP Soap с Android? Как манипулировать значением get из js-функции в php Ищете несколько хороших вариантов для отправки пользователям писем с паролем сброса пароля PHP – добавьте одну неделю к указанной пользователем дате Реализация Shunting Yard в PHP необходима, интерпретирует и анализирует строку, выполняет математическое сравнение и возвращает логический результат Могу ли я использовать график api для Facebook, чтобы получить фотографии профилей друзей пользователей?

Устаревший: функция ereg () устарела

Возможный дубликат:
Как преобразовать выражения ereg в preg в PHP?

Моя контактная форма другая, но я продолжаю получать следующую ошибку:

Устаревший: функция ereg () устарела в / home / …..

Я действительно потерялся здесь, но я считаю, что это часть, которая нуждается в некоторой корректировке.

if ( empty($_REQUEST['name']) ) { $pass = 1; $alert .= $emptyname; } elseif ( ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] ) ) { $pass = 1; $alert .= $alertname; } if ( empty($_REQUEST['email']) ) { $pass = 1; $alert .= $emptyemail; } elseif ( !eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[az] {2,3})$", $_REQUEST['email']) ) { $pass = 1; $alert .= $alertemail; } if ( empty($_REQUEST['message']) ) { $pass = 1; $alert .= $emptymessage; } elseif ( preg_match( "[][{}()*+?\\^$|]", $_REQUEST['message'] ) ) { $pass = 1; $alert .= $alertmessage; } 

Поиск решения будет высоко оценен

Вы должны использовать preg_match вместо ereg потому что последний из них устарел.

Замена его не имеет большого значения:

 ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] ) 

станет:

 preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] ) 

ps Мне пришлось изменить более ста файлов, пока я переносил свой старый проект на PHP 5.3, чтобы избежать изменения вручную. Я использовал следующий скрипт, чтобы сделать это для меня:

 function replaceEregWithPregMatch($path) { $content = file_get_contents($path); $content = preg_replace('/ereg\(("|\')(.+)(\"|\'),/', "preg_match('/$2/',", $content); file_put_contents($path, $content); } 

Я надеюсь, что это помогает.

Функция ereg() устарела и больше не должна использоваться. Документация говорит вам, что делать (вместо этого использовать preg_match ).

Как вы сказали – не bigie, это работает как шарм:

 if ( empty($_REQUEST['name']) ) { $pass = 1; $alert .= $emptyname; } elseif ( preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] ) ) { $pass = 1; $alert .= $alertname; } if ( empty($_REQUEST['email']) ) { $pass = 1; $alert .= $emptyemail; } elseif ( !preg_match("#^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[az]{2,3})$#i", $_REQUEST['email']) ) { $pass = 1; $alert .= $alertemail; } if ( empty($_REQUEST['message']) ) { $pass = 1; $alert .= $emptymessage; } elseif ( preg_match( "/[][{}()*+?\\^$|]/", $_REQUEST['message'] ) ) { $pass = 1; $alert .= $alertmessage; } 

Спасибо вам, ребята