Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
表单上javascript验证的数学求和_Javascript_Forms_Validation - Fatal编程技术网

表单上javascript验证的数学求和

表单上javascript验证的数学求和,javascript,forms,validation,Javascript,Forms,Validation,试图创建一个非常有效的验证来防止垃圾邮件发送者。我需要一个标签为“What's 2+7?”的字段,因此Javascript需要知道结果并通过验证。我正在努力写这篇文章,是不是应该是这样的: var valid = ''; var required = ' is required'; var sum = $('form #sum').val(); if (sum == '9') { valid += '<p>An answer is' + required + '</

试图创建一个非常有效的验证来防止垃圾邮件发送者。我需要一个标签为“What's 2+7?”的字段,因此Javascript需要知道结果并通过验证。我正在努力写这篇文章,是不是应该是这样的:

var valid = '';
var required =  ' is required';
var sum = $('form #sum').val();

if (sum == '9') {
    valid += '<p>An answer is' + required + '</p>';
}
var valid='';
var required='是必需的';
var sum=$('form#sum').val();
如果(总和='9'){
有效+='答案是'+required+'

'; }
通过Javascript进行客户端验证对防范垃圾邮件发送者没有多大作用。大多数垃圾邮件发送者将拥有甚至不解析Javascript的机器人

唯一可靠地做到这一点的方法是在服务器端处理它


我建议尝试类似于Recaptcha的方法:

通过Javascript进行客户端验证对防范垃圾邮件发送者没有多大作用。大多数垃圾邮件发送者将拥有甚至不解析Javascript的机器人

唯一可靠地做到这一点的方法是在服务器端处理它


我建议您尝试类似于Recaptcha的方法:

好的,因此这不会回答您的问题本身,但我想建议您不要这样做。创建这些垃圾邮件预防机制实际上非常复杂,如果垃圾邮件发送者真的想攻击你的网站,那么你的想法就行不通了。我建议你去看看一个叫做。它是免费的,易于设置,用户输入的信息将用于数字化旧书。

好的,因此这不会回答您的问题本身,但我建议您不要这样做。创建这些垃圾邮件预防机制实际上非常复杂,如果垃圾邮件发送者真的想攻击你的网站,那么你的想法就行不通了。我建议你去看看一个叫做。它是免费的,易于设置,用户输入的信息可用于数字化旧书。

如果不查看更多代码,很难准确说出需要什么

如果在服务器端生成这样一个简单的问题,它可能非常有效,并且在可访问性方面比CAPTCHA好得多。为了有效,还应随机选择问题和答案

出于可用性的目的,您可能会选择包含预提交客户端验证,但由于垃圾邮件机器人忽略JavaScript,因此阻止它们是无用的,除非您做一些非常复杂的事情


一个额外的提示主题:JQuery选择器效率低下。使用id选择器时,您永远不需要包含其父项。

如果不查看更多代码,就很难准确地说出需要什么

如果在服务器端生成这样一个简单的问题,它可能非常有效,并且在可访问性方面比CAPTCHA好得多。为了有效,还应随机选择问题和答案

出于可用性的目的,您可能会选择包含预提交客户端验证,但由于垃圾邮件机器人忽略JavaScript,因此阻止它们是无用的,除非您做一些非常复杂的事情


一个额外的提示主题:JQuery选择器效率低下。当使用id选择器时,您将永远不需要包含其父项。

正如我在评论中所写,您可以防止机器人仅使用javascript发布您的数据。让我解释一下你是如何做到的:

  • 您可以先为表单设置错误或空操作,然后在javascript的帮助下,如果“sum”上的答案正确,则将其设置为正确的操作。甚至没有“sum”请求,因为大多数垃圾邮件机器人都不运行js

  • 您可以使用
    false
    initial插入名为“passed”的隐藏字段 它的价值。同样,基于表单交互,您可以将其设置为 true,然后检查表单中的数据(此 服务器上的隐藏字段)

  • 最后一种方法,在大多数情况下我更喜欢,是编码html 表单的代码,例如base64,并使用javascript 将其转换回HTML代码。一旦机器人不运行js,它们就会 甚至不知道页面上有表单。这里的好处是,您不必要求某人在表单中输入其他内容


  • 所有这些方法都可以被对你的网站上的垃圾邮件感兴趣的人绕过。他可以检查发送到服务器的最终数据,并创建发送到服务器的相同请求集。这就是为什么您需要一些服务器端支持,以防止您形成甚至是手动创建的垃圾邮件请求。

    正如我在评论中所写,您可以防止机器人程序仅使用javascript发布您的数据。让我解释一下你是如何做到的:

  • 您可以先为表单设置错误或空操作,然后在javascript的帮助下,如果“sum”上的答案正确,则将其设置为正确的操作。甚至没有“sum”请求,因为大多数垃圾邮件机器人都不运行js

  • 您可以使用
    false
    initial插入名为“passed”的隐藏字段 它的价值。同样,基于表单交互,您可以将其设置为 true,然后检查表单中的数据(此 服务器上的隐藏字段)

  • 最后一种方法,在大多数情况下我更喜欢,是编码html 表单的代码,例如base64,并使用javascript 将其转换回HTML代码。一旦机器人不运行js,它们就会 甚至不知道页面上有表单。这里的好处是,您不必要求某人在表单中输入其他内容

  • 所有这些方法都可以被对你的网站上的垃圾邮件感兴趣的人绕过。他可以检查发送到服务器的最终数据,并创建发送到服务器的相同请求集。这就是为什么您需要一些服务器端支持,以防止您形成甚至是手动编制的垃圾邮件请求。

    这不应该说
    如果(sum='')
    ,表示没有输入任何内容吗?不确定。我想