Ruby on rails rails 1.2.6中的验证码
我正在使用一个非常旧的rails应用程序(v1.2.6),需要在站点上实现验证码。有人知道我可以采取什么方法来做到这一点吗 我试过:Ruby on rails rails 1.2.6中的验证码,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在使用一个非常旧的rails应用程序(v1.2.6),需要在站点上实现验证码。有人知道我可以采取什么方法来做到这一点吗 我试过: 搜索支持v1.2.6的rails插件(未找到任何内容) 设置插件(但仅适用于 轨道>3) 任何帮助都将不胜感激。谢谢:)无需使用插件,建议在可用时使用,但不是强制性的。 “自己动手”安装可能需要更多步骤,但肯定会奏效。 举个例子,有一个完整的部分专门解释不带插件的库的使用 基本上有两种方法: 标准挑战和非JavaScript API reCAPTCHA AJA
- 搜索支持v1.2.6的rails插件(未找到任何内容)
- 设置
插件(但仅适用于 轨道>3)
任何帮助都将不胜感激。谢谢:)无需使用插件,建议在可用时使用,但不是强制性的。 “自己动手”安装可能需要更多步骤,但肯定会奏效。 举个例子,有一个完整的部分专门解释不带插件的库的使用 基本上有两种方法:
希望这能有所帮助。所以我最终按照Javier的建议实现了reCaptcha 在我的视图中添加了以下内容:
<p class="text-black-11px-17px" style="color: red;"><%=flash[:captcha_error]%></p>
<script type="text/javascript"
src="http://www.google.com/recaptcha/api/challenge?k=PUBLIC_KEY_HERE"></script>
<noscript>
<iframe
src="http://www.google.com/recaptcha/api/noscript?k=PUBLIC_KEY_HERE"
height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"
value="manual_challenge">
</noscript>
# verify reCaptcha
uri = URI.parse("http://www.google.com/recaptcha/api/verify")
response = Net::HTTP.post_form(uri, {
"privatekey" => "PRIVATE_KEY_HERE",
"remoteip" => request.env['REMOTE_ADDR'],
"challenge" => params[:recaptcha_challenge_field],
"response" => params[:recaptcha_response_field]
})
flash[:captcha_error] = nil
if ((@contact.valid?) && (response.body.include? "success"))
# VALIDATION SUCCESSFUL - SEND THE EMAIL
elsif (response.body.include? "false")
flash[:captcha_error] = "The CAPTCHA you entered is invalid. Please try again."
render :action => 'contact'
else
render :action => 'contact'
end
Rails1.2没有内置的可用插件机制(而且它非常旧)。我想唯一可行的方法是阅读其他插件的源代码,从中获取所需的内容,并将其包含到应用程序中。您可能需要了解Rails3插件(或源插件的目标)和Rails1.2的工作知识。最后,我真的为你感到抱歉…嗯。所以我想我运气不好:(但是如果禁用Javascript并提交表单会发生什么?这在第一种方法“非Javascript API”中有介绍。示例显示,如果禁用Javascript,则加载iframe,并且一切正常。