首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP联系人表单随机提交

PHP联系人表单随机提交
EN

Stack Overflow用户
提问于 2012-10-10 10:53:54
回答 2查看 628关注 0票数 1

我希望我在这里遗漏了一些非常基本的东西,但是:一个空的表单是随机提交的,有时一天提交3-8次,然后几天都没有提交,以此类推。

空的提交总是以“网站联系人表单”为主题的电子邮件。尽管在我的php中没有验证,但在html代码中,主题是从一个下拉菜单中选择的,默认设置为"General Enquiry“。注意在下面的php代码中,人类没有办法提交一个带有上面主题行的空表单,也就是说,如果我在没有输入任何内容的情况下按下提交,它将始终是“网站联系FormGeneral查询”。

我让contact.html调用这个contact.php文件:

代码语言:javascript
复制
<?
   $email = 'info@mail.com';
   $mailadd = $_POST['email'];
   $headers = 'From: ' . $_POST['email'] . "\r\n";
   $name = $_POST['name'];
   $subject = '[Website Contact Form] ' . $_POST['subject'];
   $message = 'Message sent from: ' . $name . '. Email: ' . $mailadd . '. Organization: ' . $_POST['company'] . '. Phone: ' . $_POST['phone'] . '. ';
   $message .= 'Message: ';
   $message .= $_POST['message'];

   if (mail($email,$subject,$message, $headers)) {
    echo "<p>Thank You! We'll get back to you shortly.</p>";
   }
   else {
    echo "<p>Error...</p>";
   }
?>

我在很多网站上都使用过这个代码,但是从来没有遇到过这个问题。这段代码有没有什么明显的错误,我遗漏了什么?任何帮助都将不胜感激!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-10 11:01:23

我怀疑您在发送电子邮件之前可能没有检查这些变量是否已设置。直接请求contact.php (没有任何表单数据)的人可能会产生您所描述的结果。如果是这样的话,下面的代码应该可以很好地工作:

代码语言:javascript
复制
<?php
    if (isset($_POST['submit']) {
        // form code
    }
    else {
        // The form was not submitted, do nothing
    }
?>

即使情况并非如此,这种简单的检查也总是很好的做法。

此外,您应该始终将任何用户输入作为一个好习惯进行验证。你不希望你的服务器在你的收件箱里塞满电子邮件。我建议使用正则表达式来验证所提供的输入,并可能使用验证码服务(如ReCaptcha)。

票数 3
EN

Stack Overflow用户

发布于 2012-10-10 11:13:17

如果您一直在使用这段代码,并且运行良好,那么我会检查您在这种情况下更改了哪些变量,例如您的提交表单。

使用所有常见的可能性尝试您的表单,看看它是否有效。而空的主题会给你的表单提供主题“网站联系人表单”。检查您的脚本是否实际获取了post变量,以及您的表单是否提交了正确的变量。您的下拉列表可能有一个值为"“的选项和innerHTML”常规查询“。

在服务器端检查输入也很好

代码语言:javascript
复制
<?php 
      if(isset($_POST['subject'],$_POST['email'])){

      }
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12811303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档