这是我在网站上试用联系表单时得到的结果:弃用:函数eregi()在第9行的/home/content/04/11965204/html/horizon/One/contact.php中已弃用 消息已发送!
这是我的代码:请帮忙 - 谢谢
<?php
if(!$_POST) exit;
$email = $_POST['email'];
//$error[] = preg_match('/\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b/i', $_POST
['email']) ? '' : 'INVALID EMAIL ADDRESS';
if(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*" ."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]
{2,}"."$",$email )){
$error.="Invalid email address entered";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ('name','email','message');
$required = array('name','email','message');
$your_email = "horizon.electronics.recyclers@gmail.com";
$email_subject = "New Message: ".$_POST['subject'];
$email_content = "new message:\n";
foreach($values as $key => $value){
if(in_array($value,$required)){
if ($key != 'subject' && $key != 'company') {
if( empty($_POST[$value]) ) { echo 'PLEASE FILL IN REQUIRED FIELDS'; exit; }
}
$email_content .= $value.': '.$_POST[$value]."\n";
}
}
if(@mail($your_email,$email_subject,$email_content)) {
echo 'Message sent!';
} else {
echo 'ERROR!';
}
}
?>
答案 0 :(得分:2)
在PHP 5.3+中,不推荐使用ereg
和eregi
函数。替换
eregi('pattern', $string, $matches)
使用
preg_match('/pattern/i', $string, $matches)
(第一个参数中的尾随i
表示忽略并且与i
中的eregi
对应 - 只是在替换ereg
调用时跳过。
但请注意新旧图案之间的差异! This page列出了主要的差异,但对于更复杂的正则表达式,您必须更详细地查看POSIX regex(由旧的ereg / eregi / split函数等支持)和{{之间的差异。 3}}
但是在你的情况下,没有必要担心,只需要做上面描述的替换。
答案 1 :(得分:1)
自PHP 5.3起,弃用是应用于计算机软件功能的状态, 通常,特征或实践表明应该避免 因为它被取代了。
eregi()
已弃用,请改用preg_match()
。
答案 2 :(得分:0)
您最好使用eregi()
而不是使用已弃用的preg_match()
函数或FILTER_VALIDATE_EMAIL
来验证电子邮件地址,而使用了很多LESS代码< /强>
示例和替代方案:
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Thank you. Your email is valid.";
// The email address is valid
} else {
echo "INVALID EMAIL ADDRESS";
// The email address is not valid
}
或使用倒置方法:!filter_var
if(!filter_var($email, FILTER_VALIDATE_EMAIL))
{
echo "INVALID EMAIL ADDRESS";
}
else
{
echo "Your email is valid.";
}