php联系人表单有时发送空白电子邮件

php联系人表单有时发送空白电子邮件,php,Php,我看了很多表格,似乎找不到答案。我已经断断续续地用我的php表单处理这个问题好几天了。希望能在这里找到帮助。这个表格工作得很好。所有字段在提交时都正常工作,但似乎总是有第二个表单在一天到两天后发送,该表单是空白的。如果有任何关于为什么会发生这种情况的建议,那将是很有帮助的 <?php $name = $_POST['name']; $email = $_POST['email']; $subject = $_POST['subject']; $comments = $_POST['co

我看了很多表格,似乎找不到答案。我已经断断续续地用我的php表单处理这个问题好几天了。希望能在这里找到帮助。这个表格工作得很好。所有字段在提交时都正常工作,但似乎总是有第二个表单在一天到两天后发送,该表单是空白的。如果有任何关于为什么会发生这种情况的建议,那将是很有帮助的

<?php


$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$comments = $_POST['comments'];

// recipient address
$to = "grandforkssuites@gmail.com";

// subject of email
$re = "Contact Us Form Delivery";

// message creation
$contact = "Name:".$name."\nEmail:".$email."\nSubject:".$subject."\r\n";

$txt = "Comments:".$comments."\r\n";


$fmsg = $contact."\r\n".$txt;

$msg = wordwrap($fmsg, 70);

// send email
mail($to,$re,$msg);

?>

  <form action="contact1.php" method=post name="form" id="form">
  <div class="col_w280 float_l">
  <p><em>
 <label for="author">Name:</label> <input type="text" id="name" name="name"                class="required input_field" />
 <div class="cleaner_h10"></div>

   <label for="email">Email:</label> <input type="text" id="email" name="email"  class="validate-email required input_field" />
   <div class="cleaner_h10"></div>
   <label for="email">Phone:</label> <input type="text" id="phone" name="phone"   class="required input_field" />
   <div class="cleaner_h10"></div>

   <label for="subject">Subject:</label> <input type="text" name="subject" id="subject" class="input_field" />
   <div class="cleaner_h10"></div>

                          </div>                        
   <div class="col_w280 float_r">

   <label for="text">Comments:</label> <textarea id="comments" name="comments" rows="0"  cols="0" class="required input_field"></textarea>
   <div class="cleaner_h10"></div></em></p>
   <input name=submit type=submit id="submit"  onClick="MM_validateForm('name','','R','email','','RisEmail');return  document.MM_returnValue" value="Send">              

                    </div></form>


姓名:
电邮:
电话:
主题:
评论:


将验证添加到PHP中,否则即使没有通过POST发送值,只要访问页面,它也会发送一封空白电子邮件。最有可能的是搜索引擎或类似的机器人只是在爬行

所以检查一下它的帖子

<?php 
if($_SERVER['REQUEST_METHOD']==='POST'){
//put code here
}
?>

并检查您的值是否设置为最小最大长度等

<?php 

...
...
...

//Comments
if(empty($_POST['comments'])){
    //comments empty, do or set something
}else if(strlen($_POST['comments']) < 5){
    //not long enough, do or set something
}else if(strlen($_POST['comments']) > 50){
    //too large, do or set something
}
?>

最重要的是,检查电子邮件实际上是一封电子邮件

<?php 
if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
 //is an email
}else{
 //not an email
}
?>

此外,您还想添加一个基本的验证码,否则您将享受每天1000封营销/垃圾邮件


祝你好运,实现它。

你也可以发布正面表单的html吗?您可能会收到来自robots的电子邮件……也许几天后您收到的第二封空白电子邮件是因为您没有检查以确保此表单中的值不是空的?可能是有人在你的网站上撒尿,可能是垃圾邮件,可能是搜索引擎爬行,可能是有人在你的页面上无意中点击了enter。这个故事的寓意是,如果你要发送像上面代码一样的电子邮件,在发送之前先做一些服务器端验证,或者忍受大量的空白/垃圾邮件(grandforkssuites@gmail.com我不确定你是不是漏掉了,但是,如果您不进行任何表单验证,则很容易向主题和注释发送空值。完全依赖客户端验证是个坏主意。您可以在浏览器设置(hello blank email)中轻松禁用Javascript。请阅读:谢谢,我会试试这个。