Возможный дубликат:
Как преобразовать выражения 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; }
Спасибо вам, ребята