【发布时间】:2016-04-20 21:03:07
【问题描述】:
所以在过去的 2 个月里,我的网站上线了,我收到了 2 封来自我的联系表格的普通电子邮件,以及 30 封未填写的空表格电子邮件。我也使用验证器http://faireware.de/js/jquery.form-validation-and-hints.js。 奇怪的是,当我不填写表格并按发送时,我不会让这些电子邮件为空。它以某种方式自动发生......垃圾邮件机器人或其他什么,可能吗?
我的 HTML 代码是:
<form method="post" action="contactengine.php">
<div class="field required">
<p>Name<br>
<input class="text verifyText hint" name="name" type="text" size="25" title="*Ihr Name..."></p>
</div><!--/field-->
<div class="field required ">
<p>E-Mail<br>
<input class="email verifyMail hint " name="email" type="text" size="25" title="*Ihre E-Mail-Adresse..."></p>
</div><!--/field-->
<div class="field required ">
<p>Nachricht<br>
<textarea name="message" rows="50" cols="50" title="*Schreiben Sie Ihre Nachricht..." class="hint "></textarea></p>
</div><!--/field-->
<p><input class="submit" type="submit" value="Senden"></p>
</form>
而我的contactengine.php 是:
<?php
$Subject = "Kontaktformular - FaireWare";
$Name = Trim(stripslashes($_POST['name']));
$Email = Trim(stripslashes($_POST['email']));
$Message = Trim(stripslashes($_POST['message']));
$EmailFrom = $Email;
$EmailTo = "info@faireware.de";
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Name: ";
$Body .= $Name;
$Body .= "\n\n";
$Body .= "E-Mail: ";
$Body .= $Email;
$Body .= "\n\n";
$Body .= "Nachricht: ";
$Body .= "\n";
$Body .= $Message;
$Body .= "\n\n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: $Email");
// redirect to success page
if ($success){
print "<meta http-equiv=\"refresh\" content=\"0;URL=contactthanks.html\">";
}
else{
print "<meta http-equiv=\"refresh\" content=\"0;URL=error.htm\">";
}
?>
空的电子邮件表格确实是这样的:
Name:
E-Mail:
Nachricht:
它会自动执行吗?它如何超越验证...?我不知道 PHP 和很少的 java,所以有人知道问题可能出在哪里吗?
谢谢!
【问题讨论】:
-
如果您直接点击contactengine.php然后发送空白电子邮件。请添加服务器端验证,在客户端添加验证码。
-
它的验证问题,$validationOK 默认为 true。验证码在哪里??
-
您没有验证字段,即在发送邮件之前字段是否为空。利用
empty()函数。 -
如果页面引用或仅提交带有空字段的按钮,您将收到空电子邮件..
-
当我填写所有字段并单击发送时,我会立即收到一封电子邮件。当我的字段为空时单击发送时,我没有收到空电子邮件。至少不是马上。它根本没有通过验证。如果我单击带有空字段的发送是否有可能仍然发送电子邮件,即使只是在一天之后或之后?或者那些是垃圾邮件机器人或类似的东西?
标签: javascript php html forms email