Итак, я закончил реализацию reCaptcha Non-JavaScript API, как предложил Хавьер.
Добавлено следующее в моем зрения:
<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
Rails 1.2 не имеет удобный механизм плагин встроенный (и это ** действительно ** старый). Я предполагаю, что единственный способ использования - прочитать источник других плагинов и очистить материал, который вам нужен, и включить его в свое приложение. Вероятно, вам понадобятся рабочие знания как плагинов Rails 3 (или любого другого, на который нацелен ваш плагин источника), так и Rails 1.2. Наконец, мне очень жаль вас ... –
Хммм. Итак, я думаю, мне не повезло :( –