我的联系表格是其他工作,但我继续得到以下信息 错误:
不推荐使用:函数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;
}
寻求解决方案将受到高度赞赏
答案 0 :(得分:33)
您必须使用preg_match
代替ereg
,因为最后一个已被弃用。
取而代之的不是什么大事:
ereg( "[][{}()*+?.\\^$|]", $_REQUEST['name'] )
将成为:
preg_match( "/[][{}()*+?.\\^$|]/", $_REQUEST['name'] )
P.S。当我将旧项目移植到PHP 5.3时,我不得不修改了一百多个文件,以避免手动修改我使用以下脚本为我做的事情:
function replaceEregWithPregMatch($path) {
$content = file_get_contents($path);
$content = preg_replace('/ereg\(("|\')(.+)(\"|\'),/',
"preg_match('/$2/',",
$content);
file_put_contents($path, $content);
}
我希望它有所帮助。
答案 1 :(得分:1)
不推荐使用函数ereg()
,不应再使用它。 documentation告诉您该怎么做(改为使用preg_match
)。
答案 2 :(得分:0)
就像你说的那样 - 没什么大不了的,它就像一个魅力:
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;
}
谢谢你们