我的表单很简单,可以从用户那里获取名称和电子邮件以及状态,并通过电子邮件发送。
我收到了电子邮件,并且我的代码可以正常工作。我的问题是,当我填写表格时,一切都很好,但是当其他客户填写表格时,我收到了一些名称不正确的值,例如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>";
}