我已经接管了其他人建立的网站的维护工作。这个站点主要是HTM / CSS,但是它使用了奇怪的javascript代码以及PHP,该代码是由签约的后端程序员实现的。

我遇到的问题是-该网站包含许多页面,每个页面都有自己独特的电子邮件表单。创建这些表格中的每一种都无需担心垃圾邮件。现在这些表格收到了大量垃圾邮件,我有望纠正该问题(无论我既不是Javascript也不是PHP程序员)。我需要一些帮助,因为由于该电子邮件系统的重要性,我无法尝试估计解决方案。

我希望我可以发布代码,并请某人指导我完成蜜罐或简单的数学方程式的过程(我知道这并不是100%可靠的方法,但是这些都是糟糕的水龙头,这个网站很可能不会主动成为目标)。

表单页面:该页面包含一些PHP,一些Javascript,但主要只是内容,由于其重要性不大,因此我将避免发布。但是,我将按顺序发布脚本。 (此外,productformvalidation.js文件是一个简单的Javascript脚本,如果电子邮件/电话号码中没有正确的字符,则会引发弹出消息。如有必要,我也可以提供此消息)

<?php

/* validation function for when they press the submit button */
function validateFields($fields, $form_vars) {
$errors = array();
    foreach($fields as $field_name => $error_msg) {
    $value_entered = trim(@$form_vars[$field_name]);
    if(empty($value_entered)) {
        $errors[$field_name] = $error_msg;
    }
}
return $errors;
}

function safe($str) { return htmlentities(strip_tags($str)); }

?>

<head>

<script type="text/javascript" src="js/productFormValidation.js"></script>

</head>

<body>

<div class="contact_links">
<form name="contact" method="post" action="/sendmail/send-mail-start.php" enctype="multipart/form-data" onsubmit="return checkForm(this);">


                            <label>Name: (required) </label><input class="input1" id="name" name="name" type="text" value="" />


                            <label>Email: (required) </label><input class="input1" id="email" name="email" type="text" value="" /><br />


                            <label>Phone: (required) </label><input class="input1" id="phone" name="phone" type="text" value="" />
                            <label>Company: (required)  </label><textarea class="input2" name="comments" id="comments" cols="" rows="1"></textarea><br />
                            <input type="image" src="images/individualProducts/submit.png" alt="" value="" class="submit" />


                            </form>

<!-- INDIVIDUAL CONTACT LINK ENDS --></div>

</body>


“操作”页面:

<?php

    $date1=date("F d,Y");

    $nameField=$_POST['name'];
    $companyField=$_POST['company'];
    $countryField=$_POST['country'];
    $stateField=$_POST['state'];
    $emailField=$_POST['email'];
    $phoneField=$_POST['phone'];
    $urlField=$_POST['url'];



    $messageField=nl2br($_POST['comments']);


    $body="

    $body is followed by the table setup which contains the code. Basically just font-specifications, padding etc.

   //$from=$firstNameField;
   $sub="Contact Form - From the Start Page".$titleField;

   $name=$firstNameField."< ".$emailField." >";
   $to="info@mysite.com";

    if (mail($to,$sub,$body,"From:".$name."\nContent-Type: text/html; charset=iso-8859-1"))
    {
    print "<meta http-equiv=\"refresh\" content=\"3;URL=/start.php\">";
    }
    else{
    print "<meta http-equiv=\"refresh\" content=\"0;URL=error.php\">";
    }

?>


然后是HTML,基本上是感谢他们的联系。这些就是所涉及的脚本。

只要自己找到正确的指南并按照步骤进行操作,就可以自己创建网站,从而自己实施CAPTCHA。不幸的是,其他人已经组织了这个邮件结构,我不得不使用我不完全了解的设置-我也没有学会理解。我收到语法错误,不确定在哪里粘贴代码等。

我需要一个能看到我所掌握的东西并了解正在发生的事情的人,以帮助我实施一个简单的垃圾邮件解决方案,以防止出现讨厌的僵尸邮件。

另外-reCaptcha由于其大小和读取困难而无法选择。

先感谢您。

最佳答案

一种快速(但不完美)的解决方案是添加一个隐藏的字段,机器人会将其填充(将其称为“用户名”,并使用CSS将其隐藏),如果该字段包含内容,则取消提交。至少将删除大量垃圾邮件提交。

您的表单如下所示:

<form name="contact" method="post" action="/sendmail/send-mail-start.php" enctype="multipart/form-data" onsubmit="return checkForm(this);">

  <label>Name: (required)</label>
  <input class="input1" id="name" name="name" type="text" value="" />

  <label class="hidethis">Username: (required)</label>
  <input class="input1 hidethis" id="username" name="username" type="text" value="" />

  <label>Email: (required)</label>
  <input class="input1" id="email" name="email" type="text" value="" />
  <br />
  <label>Phone: (required)</label>
  <input class="input1" id="phone" name="phone" type="text" value="" />
  <label>Company: (required) </label>
  <textarea class="input2" name="comments" id="comments" cols="" rows="1">
  </textarea>
  <br />
  <input type="image" src="images/individualProducts/submit.png" alt="" value="" class="submit" />
</form>


/sendmail/send-mail-start.php将像这样开始:

<?php
  if($_POST['username']!= "") {die("No spam");}
  $date1=date("F d,Y");
  $nameField=$_POST['name'];
  $companyField=$_POST['company'];
  $countryField=$_POST['country'];
  ... // Rest of your code

09-30 15:56
查看更多