我为客户做了一个网页,其中包含一系列文本框,要求提供特定信息,例如人名,电子邮件地址,公司等。还有一个按钮,可以将信息通过电子邮件发送给我的客户。每当我测试按钮时,它似乎工作得很好,我上传了页面并认为我已经完成了。但是,有一天,我的客户从网站上收到了这封电子邮件:
姓名:rfhopzdgmx rfhopzdgmx
电子邮件:envlxw@lnlnsm.com
公司:zUDXatAfoDvQrdH
邮寄地址:
AaSsXklqpHIsoCNcei
gXsimMPRBYZqq
vGLvZraZNdpOAV,ChsmuibE PoKzaSCubXPRI
家庭电话:CIJbIfjMfjIaTqAlD
工作电话:JFLZBOvru
手机:XlFJTTFGiTTiiFQfy
传真:UEJMOVZodWPkKxew
评论:
sPvSCE hgetwoguderu,*
[URL = HTTP://atyktjlxcznl.com/] atyktjlxcznl [/ URL],
[link = http://nudvfcehwpyg.com/] nudvfcehwpyg [/ link],http://lvvwkbzbhnzp.com/
注意:*行包含HTML链接代码,我只是不知道如何让这个网站显示它。
以下是电子邮件按钮站点中的PHP代码。
<?php
//This Sends A Formatted Text Email Using The Text Boxes
if ($_POST['submit']){
//This Gets The Form Data
$fname = $_POST['fName'];
$lname = $_POST['lName'];
$email = $_POST['email'];
$company = $_POST['co'];
$address1 = $_POST['address1'];
$address2 = $_POST['address2'];
$city = $_POST['city'];
$state = $_POST['state'];
$zip = $_POST['zip'];
$homep = $_POST['homeP'];
$workp = $_POST['workP'];
$cellp = $_POST['cellP'];
$fax = $_POST['fax'];
$comments = $_POST['txaOutputField'];
//echo "<script language = 'javascript'>alert('YAY');</script>";
if ($fname && $lname && $email && $comments){ //Check If Required Fields Are Filled
//This Sets The SMTP Configuration In php.ini
ini_set("SMTP", "smtp.2ndsourcewire.com");
//This Replaces Any Blank Fields With 'None's
if ($company == ""){
$company = "None";
}
if ($address1 == ""){
$address1 = "None";
}
if ($city == ""){
$city = "None";
}
if ($state == ""){
$state = "None";
}
if ($zip == ""){
$zip = "None";
}
if ($homep == ""){
$homep = "None";
}
if ($workp == ""){
$workp = "None";
}
if ($cellp == ""){
$cellp = "None";
}
if ($fax == ""){
$fax = "None";
}
//This Creates The Variables Necessary For The Email
$to = "CLIENT EMAIL WHICH I'M CENSORING";
$subject = "Email from 2ndSourceWire.com";
$from = "From: noreply@2ndsourcewire.com";
$secondEmail = "MY EMAIL WHICH I'M ALSO CENSORING";
if ($address2 == ""){
$body = "Name: $fname $lname\n".
"Email: $email\n".
"Company: $company\n\n".
"Mailing Address:\n".
"$address1\n".
"$city, $state $zip\n\n".
"Home Phone: $homep\n".
"Work Phone: $workp\n".
"Cell Phone: $cellp\n".
"Fax: $fax\n\n".
"Comments:\n".
"$comments";
}
else {
$body = "Name: $fname $lname\n".
"Email: $email\n".
"Company: $company\n\n".
"Mailing Address:\n".
"$address1\n".
"$address2\n".
"$city, $state $zip\n\n".
"Home Phone: $homep\n".
"Work Phone: $workp\n".
"Cell Phone: $cellp\n".
"Fax: $fax\n\n".
"Comments:\n".
"$comments";
}
//This Sends The Email
mail($to, $subject, $body, $from);
mail($secondEmail, $subject, $body, $from);
echo "<script language = 'javascript'>alert('The email was sent successfully.');</script>";
}
else {
//The Required Fields Are Not Filled
echo "<script language = 'javascript'>alert('Please fill your first name, last name, email address, and your comment or question.');</script>";
}
}
&GT;
我对这发生的事情有点傻眼,客户提到了几封这样的电子邮件,所以我不认为这是一个随机的故障。此外,电子邮件地址的格式类似于电子邮件地址,因此某人或某个程序正在解释每个文本框旁边的标签。我也注意到输入的名字和姓氏都是同一个词,即使它们在不同的文本框中,我也在考虑一些垃圾邮件程序,但是他们不会尝试做广告和赚钱,而不仅仅是喷出随机文字?此外,评论部分根本没有任何意义,链接转向无处,它们都是完美的格式化,一个随机的人只是搞砸了不会知道这些标签,一个程序员做它不会打扰它,但也不是一个程序。
我不知道是什么造成了这个或如何解决它,我在这里画一个空白。有人有什么想法吗?
答案 0 :(得分:9)
垃圾邮件发送者/机器人将duff数据输入到您的页面中,并在您的应用程序中尽职地发送它。
为什么你认为这是一个谜?
答案 1 :(得分:1)
添加CAPTCHA以阻止它发生。如果您不想自己编写什么,可以使用reCAPTCHA
答案 2 :(得分:1)
即使是一个简单的问题,比如“你是一个人类的Y / n?”还是“2 + 2?”将停止机器人, 还使用一些js在提交时设置隐藏值并在服务器上检查它。 对$ email和$ phone进行一些验证会很不错。
答案 3 :(得分:0)
我不想让人们尝试阅读CAPTCHA,而是希望连续使用四个文本框并要求用户检查两个随机文本框(例如“请检查第一个和第三个框”)并确保这些是唯一的两个检查验证。