javascript - 我从我网站上的评论表单中收到空电子邮件

标签 javascript php html forms email

我是 HTML 和 php(所有方面)的初学者。

我有 4 种类型的字段(评论表):

  1. 从列表中选择一个(选项标签)

  2. 输入文字(例如姓名)

  3. 输入评论(文本区域)

  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 for thai form(我有 if 函数来查找英文单词并将英文单词发送到我的电子邮件,因为不是每个人都能阅读泰语):

$language = $_POST['language'];
if (strpos($language, 'English')){
    $language = "English";
}elseif (strpos($language, 'Chinese')){
    $language = "Chinese";
}else{
    $language = "Thai";
}

您可能已经注意到,如果一个人没有选择语言,由于 if 函数,它将选择泰语。

我过去测试过评论表单并且它们有效。最近,我开始收到几乎是空的或完全空的电子邮件。通常,会同时收到 2 封电子邮件(我刚才提到的电子邮件类型)。

这些电子邮件的共同点:

  1. 复选框从未被点击

  2. 你可以在哪里输入单词来填充总是空的

  3. 您只能看到两件事,即在一次提交中同时选择了 2 个选择字段,然后我收到的第二次提交将是一封电子邮件,甚至没有进行任何选择。

我不明白的地方:

  1. 我有 java 脚本来防止电子邮件和名称字段中没有任何内容,但不知何故,电子邮件仍然以空名称和电子邮件地址发送给我?

  2. 为什么这些邮件同时进来?

  3. 由于 if 函数不应该是一种语言,但我认为这是因为在我的英语表单的 php 中它没有 if 函数(我忘了把它放进去)所以触发的电子邮件是'来自相同的表格。可能同时有一个英文形式和一个中文形式。

  4. 这是某种机器人吗?垃圾邮件?或谷歌检查我的网站?

最佳答案

此特定请求是使用禁用了 Javascript 的浏览器进行的,并且您的所有验证都只是客户端 Javascript,因此提交空白表单就可以了。很简单!

您对所有 4 个问题的回答是还要添加服务器端验证(在本例中为 PHP)

例如

if(empty($_POST["name"]))
{
   die("You did not enter a name, we can not send email");
}

其他领域同理

执行此操作后,您会注意到机器人有时仍然可以使用垃圾邮件/虚假信息提交您的表单(尽管空白信息问题将得到解决)。届时请搜索名为CAPTCHA

的内容

将服务器/客户端验证视为街道起点和主门锁处的 Gaurd。仅仅因为您的街道入口处通常有守卫,您就不能一直开着门以为它是安全的。你必须确保在你的门上只有合适的人才能进入你的家,而不管那个守卫。

关于javascript - 我从我网站上的评论表单中收到空电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39221387/

相关文章:

javascript - 将不同的 Maven Web 项目合并到一个项目中

php - 拉拉维尔。在 Assets 中回显对象属性

html - 让常规按钮看起来松弛

javascript - foreach 循环中的自定义输入数字

javascript - 根据另一个数组的值对 JS 数组进行排序的最快方法?

php - 用 PHP 重写 URL

css - 容器固定宽度。中心 div 动态宽度。想要左右div平均填充剩余宽度

php - isset($_POST ['submit' ]) 总是假的

javascript - 如何使用 puppeteer 对模拟设备执行拖动缩放

javascript - 一段时间后 YouTube 视频 ID 发生变化