Устаревший: функция 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-]+)*(.[a-z] {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;
}
Поиск решения будет высоко ценится
3 ответа
Вы должны использовать 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
вместо).
Как вы сказали - не важная персона, она работает как шарм:
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-]+)*(\.[a-z]{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;
}
Спасибо вам, ребята