【发布时间】:2017-01-06 09:04:42
【问题描述】:
我是 HTML 和 php(一切)的初学者。
我有 4 种类型的字段(评论表单):
从列表中选择一个(选项标签)
输入文本(例如姓名)
输入注释(文本区域)
复选框(勾选全部或一个或不勾选)
我有 Javascript(防止姓名和电子邮件为空):
<script>
function validateForm1() {
var x = document.forms["form_contact"]["name"].value;
if (x == null || x == "") {
alert("Name must be filled out");
return false;
}
var x = document.forms["form_contact"]["email"].value;
if (x == null || x == "") {
alert("Email must be filled out");
return false;
}
}
</script>
我有一个语言字段,您可以从中选择一种语言。我也有 3 种语言的网站,其中一种是英文的。那些不是英文的有单独的php文件。
泰国网站的语言字段:
<option></option>
<option>thai language written in thai and then thai language written in english</option>
<option>english language written in thai and then english language written in english</option>
<option>mandarin language written in thai and then mandarin language written in english</option>
我的泰文 php(我有 if 功能来查找英文单词并将英文单词发送到我的电子邮件,因为不是每个人都可以阅读泰文):
$language = $_POST['language'];
if (strpos($language, 'English')){
$language = "English";
}elseif (strpos($language, 'Chinese')){
$language = "Chinese";
}else{
$language = "Thai";
}
您可能已经注意到,如果一个人没有选择一种语言,由于 if 函数,它将是泰语。
我过去曾测试过评论表单,它们很有效。最近,我开始收到几乎是空的或完全空的电子邮件。通常,2 封电子邮件(我刚才提到的电子邮件类型)会同时收到。
这些电子邮件的共同点:
复选框从未被点击
你可以在哪里输入单词来填写总是空的
您只能看到两件事是在一次提交中同时选择了 2 个选择字段,然后我收到的第二次提交将是一封电子邮件,甚至没有进行选择。
我不明白的事情:
我有 java 脚本来防止在电子邮件和姓名字段中没有任何内容,但不知何故,电子邮件仍然以空名称和电子邮件发送给我?
为什么这些邮件同时进来?
由于 if 函数,不应该是一种语言,但我认为这是因为在我的英文表单的 php 中它没有 if 函数(我忘了把它放进去),所以触发的电子邮件是不是来自同一个表格。应该是英文的和中文的同时出现。
这是某种机器人吗?垃圾邮件?或谷歌检查我的网站?
【问题讨论】:
-
许多表单垃圾邮件机器人只会发布表单而不运行任何 JavaScript。一种策略可能是防止表单在没有成功运行 DOM 操作的情况下发布,例如在页面加载时将输入元素放入您的
<form>。 -
#4 它不是谷歌。
-
总是做一个服务器端验证以防止垃圾邮件,黑客/机器人会直接查询你的php页面尝试插入数据
标签: javascript php html forms email