使用PHP发送邮件收到了一些不必要的值

时间:2018-12-19 09:27:15

标签: php email

我的表单很简单,可以从用户那里获取名称和电子邮件以及状态,并通过电子邮件发送。

我收到了电子邮件,并且我的代码可以正常工作。我的问题是,当我填写表格时,一切都很好,但是当其他客户填写表格时,我收到了一些名称不正确的值,例如5c198d7a093bc。这是我的代码:

if(isset($_POST['btnSub'])){
    $name=$_POST['name'];
    $email=$_POST['email'];
    $state=$_POST['state'];
    if(empty($name) || empty($email) || empty($state)){
        header("location: http://example.com");
    }
    $to='support@example.com';
    $subject='thanks for send us info.';
    $message="
    <p style='font-size:18px;font-weight:bold;' >name: <b>".$name."</b></p>
    <p style='font-size:18px;font-weight:bold;' >email: <b>".$email."</b></p>
    <p style='font-size:18px;font-weight:bold;' >state: <b>".$state."</b></p></p>";
    $headers = "MIME-Version: 1.0" . "\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1" . "\r\n";
    $headers .= "From: ".$email." \r\n" .
    "Reply-To: ".$email." \r\n" .
    "X-Mailer: PHP/" . phpversion();
    if(!mail($to,$subject,$message,$headers)){
        echo "error while sending email";
    }else{
        echo "message sent";
    }
}

和我的表格:

<form action="contact.php" method="post" id="index-form">
    <input name="name" type="text" />
    <input name="email" type="email" />
    <input name="state" type="text" />
    <input name="btnSub" type="submit" />
</form>

编辑: 我添加了此部分以进行电子邮件验证:

if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)){
    echo "<center>Invalid email</center>";
}else{
    echo "<center>Valid Email</center>";
}

0 个答案:

没有答案