我在简单的HTML / PHP / CSS网站上有一个联系表单,即使他们没有提交电子邮件,我也希望允许他们发送联系信息。
但是我尝试过的一切,当我通过联系表单提交消息时,它会返回一些错误,或者它返回以下错误:“输入的电子邮件地址无效!”
这是我的contactprocess.php
<?php
include("../config.php");
if(!$_POST) exit;
$email = $_POST['Email_Address'];
$error ="";
$errors ="";
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error.="Invalid email address entered!";
$errors=1;
}
if($errors==1) echo $error;
else{
$values = array ('Link','Quantity','Your_Message');
$required = array('Link','Quantity','Your_Message');
$email_subject = "The Message";
$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)) {
header('Location: http://example.com');
} else {
echo 'ERROR!';
}
}
?>
我确定这是一个简单的编辑,但我无法理解。
答案 0 :(得分:1)
您的代码明确阻止通过&amp;如果电子邮件无效,则会添加错误吗?
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$error.="Invalid email address entered!";
$errors=1;
}
然后
if($errors==1) echo $error;
else{ // other stuff
如果您不想要这种行为,那么最简单的选择就是删除该代码吗?
或者是这个想法,如果他们确实提交了一封电子邮件,那么它必须是有效的 - 如果没有,则允许通过。在这种情况下,你的if应该是
if (!empty($email) && !filter_var($email, FILTER_VALIDATE_EMAIL)) {