联系表格 - 输入的电子邮件地址无效! - 允许它通过

时间:2016-09-26 18:05:40

标签: php forms email

我在简单的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!';
    }
}
?>

我确定这是一个简单的编辑,但我无法理解。

1 个答案:

答案 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)) {