我有一个奇怪的问题,.I在我的rails应用程序的表单中使用简单的验证码。如果我在网页中使用一个验证码,我不会有任何问题。但我有一个场景,在一个页面中使用三(3)个表单,其中所有三个表单都将具有验证码。这样,当我刷新页面时,三个表单的验证码数据是相等的。
当我们到达数据库时,一旦页面被加载,一个特定id的captcha值将被创建,如果我们刷新页面,记录将被更新,而不是创建另一个记录,如果我在两个选项卡中打开网页,如果我在第一个页面中提交表单,则不使用captcha。它抛出一个异常,写着“Invalid Captcha”
谁可以请让我知道如何处理多个验证码在一个页面。我使用的是simple_captcha插件。
提前感谢
发布于 2010-09-10 23:00:30
我看不出一个页面使用多个验证码有什么意义。(我假设您的两个表单将同时提交。)因为验证码的全部目的是避免自动提交表单。
第二点是,我不明白为什么要在一个页面中使用三个表单。您可以考虑使用一个表单,并相应地在控制器端过滤和标识参数。
发布于 2011-03-30 19:14:31
你能解释一下为什么你需要新的记录而不是更新(刷新页面时)吗?
顺便说一下,我在simple_captcha处理的一个页面上的多个表单时也遇到了同样的问题。我的问题是重复使用simple_captcha的方法show_simple_captcha。在这种情况下,它会导致重复的数据库插入。我对插件做了一些小的改动来解决这个问题:
# Line 73 in lib/simple_captcha/view_helpers.rb (in show_simple_captcha method)
options[:field_value] = set_simple_captcha_data(simple_captcha_key, options[:code_type])更改为:
options[:field_value] = options[:multi] ? simple_captcha_key : set_simple_captcha_data(simple_captcha_key, options[:code_type])现在我使用show_simple_captcha(:multi => true)生成验证码,而不需要访问数据库:
<!-- For first captcha on page -->
<%= show_simple_captcha(:object => :foo) %>
<!-- For next captchas on same page -->
<%= show_simple_captcha(:object => :bar, :multi => true) %>https://stackoverflow.com/questions/3683920
复制相似问题