Ajax -php表单用(phpmailer类)每天自动发送电子邮件有什么不对?

时间:2011-07-19 08:44:02

标签: php javascript ajax jquery

您好我使用过本教程 http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

创建php - jquery - ajax表单,现在我每天都收到空表单邮件(每天早上2封电子邮件)甚至知道,访问表单是用户首先要登录的页面...

那么它如何从受保护的页面每天发送空邮件.... / 该表单有一些检查,以检查某些字段是否为空它不发送它...但我仍然收到空的电子邮件...

我认为可能是某种网络抓取工具和机器人触发这个?因为它总是在一天的同一时间,没有用户登录等(它在邮件中发布用户登录信息,并且在这些邮件中是空的)

我认为这些机器人如何保护它?如果没有 - 任何其他想法为什么会发生这种情况?

由于

<?php
if ((isset($_POST['Firma'])) && (strlen(trim($_POST['Firma'])) > 0)) {
    $Firma = stripslashes(strip_tags($_POST['Firma']));
}
if ((isset($_POST['Adresse'])) && (strlen(trim($_POST['Adresse'])) > 0)) {
    $Adresse = stripslashes(strip_tags($_POST['Adresse']));
}
if ((isset($_POST['Telefon'])) && (strlen(trim($_POST['Telefon'])) > 0)) {
    $Telefon = stripslashes(strip_tags($_POST['Telefon']));
}
if ((isset($_POST['PostNr'])) && (strlen(trim($_POST['PostNr'])) > 0)) {
    $PostNr = stripslashes(strip_tags($_POST['PostNr']));
}
if ((isset($_POST['By'])) && (strlen(trim($_POST['By'])) > 0)) {
    $By = stripslashes(strip_tags($_POST['By']));
}
if ((isset($_POST['Email'])) && (strlen(trim($_POST['Email'])) > 0)) {
    $Email = stripslashes(strip_tags($_POST['Email']));
}
if ((isset($_POST['Fax'])) && (strlen(trim($_POST['Fax'])) > 0)) {
    $Fax = stripslashes(strip_tags($_POST['Fax']));
}
if ((isset($_POST['Web'])) && (strlen(trim($_POST['Web'])) > 0)) {
    $Web = stripslashes(strip_tags($_POST['Web']));
}

if ((isset($_POST['editorName'])) && (strlen(trim($_POST['editorName'])) > 0)) {
    $editorName = stripslashes(strip_tags($_POST['editorName']));
}
if ((isset($_POST['editorMail'])) && (strlen(trim($_POST['editorMail'])) > 0)) {
    $editorMail = stripslashes(strip_tags($_POST['editorMail']));
}

if ((isset($_POST['persons'])) && (strlen(trim($_POST['persons'])) > 0)) {
    $persons = $_POST['persons'];
}

if ((isset($_POST['username'])) && (strlen(trim($_POST['username'])) > 0)) {
    $username = $_POST['username'];
}

$personsname[] = array();
$personsmail[] = array();
$personsnews[] = array();
$personsmedelm[] = array();

ob_start();
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title> </title>
</head>
<body>
Firma : <?=$Firma;?><br/>
Adresse : <?=$Adresse;?><br/>
Telefon : <?=$Telefon;?><br/>
PostNr : <?=$PostNr;?><br/>
By : <?=$By;?><br/>
Email : <?=$Email;?><br/>
Fax : <?=$Fax;?><br/>
Web : <?=$Web;?><br/><br/><br/>

<?=$persons;?>

Redigeret af: <?=$editorName;?> &nbsp; - &nbsp; <?=$editorMail;?><br/>
Filled by : <?=$username;?>
</body>
</html>
<?php
$to = 'i@i.dk'; 
$email = 'i@i.dk';
$fromaddress = "i@i.dk"; 
$fromname = "i@i.dk";

require("phpmailer.php");

$mail = new PHPMailer();

$mail->From     = "i@i.dk"; 
$mail->FromName = "i@i.dk";
$mail->AddAddress("i@i.dk","i.dk");
$mail->AddAddress("i@i.dk","i.dk"); 
$mail->WordWrap = 50;
$mail->IsHTML(true);

$mail->CharSet = "UTF-8";
$mail->Encoding = 'quoted-printable';

$mail->Subject  =  "Mail";
$mail->Body     =  $body;
$mail->AltBody  =  "This is the text-only body";
if($Firma != '' && $Firma != null){
if(!$mail->Send()) {
    $recipient = 'i@i.dk';
    $subject = 'Mail';
    $content = $body;   
  mail($recipient, $subject, $content, "From: i@i.dk\r\nReply-To: i@i.dk\r\nX-Mailer: DT_formmail");
  exit;
}
}
?>

1 个答案:

答案 0 :(得分:1)

如果您有权访问服务器日志,请检查用户代理在这些时间连接到您的网站的情况。可能是某种机器人,试图访问页面源中列出的每个URL(也是URL javascript POSTs,向您发送电子邮件)。我打赌你只在Javascript中进行验证而且你没有验证码?