2010-09-10 6 views
0

J'ai un problème étrange. J'utilise un simple captcha dans les formulaires dans mes applications rails. Si j'utilise un captcha dans une page web, je n'ai aucun problème. Mais j'ai un scénario d'utilisation de trois (3) formes dans une page dans laquelle toutes les trois formes auront le captcha. Alors que lorsque je rafraîchis la page, les données captcha des trois formes sont égales. Lorsque nous arrivons à la base de données, une fois la page chargée, la valeur captcha pour un identifiant particulier sera créée. Sans utiliser le captcha si nous actualisons la page, l'enregistrement est mis à jour au lieu de créer un autre enregistrement. J'ouvre la page Web dans deux onglets et si je soumets le formulaire dans la première page. Il émet une exception qui dit "Invalid Captcha"Problèmes avec un captcha simple

Quelqu'un peut-il s'il vous plaît laissez-moi savoir comment gérer plusieurs captcha en une seule page. J'utilise le plugin simple_captcha.

Merci en avance

Répondre

1

Je ne peux pas voir tout moment en utilisant plus d'un captcha pour une page. (Je suppose que vos deux formulaires seront soumis en même temps.) Parce que le but du captcha est d'éviter les soumissions automatiques.

Deuxièmement, je ne sais pas pourquoi vous voulez 3 formulaires sur une seule page. Vous pouvez envisager d'avoir une forme unique et filtrer l'identification des paramètres en conséquence du côté du contrôleur.

-moi si je me trompe

grâce

Sameera

0

Pouvez-vous expliquer pourquoi avez-vous besoin nouveau record au lieu de mise à jour (en rafraîchissement de la page). Par ailleurs, j'ai eu le même problème avec la multiplication des formulaires sur une page traitée par simple_captcha. Et mon problème était dans l'utilisation répétée de la méthode de simple_captcha show_simple_captcha. Il a causé des insertions de base de données répétées dans ce cas. Et Ive a apporté des modifications mineures au plugin pour résoudre ce:

# 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]) 

modifiée:

options[:field_value] = options[:multi] ? simple_captcha_key : set_simple_captcha_data(simple_captcha_key, options[:code_type]) 

Maintenant, je l'utilise pour générer show_simple_captcha(:multi => true) captcha sans base de données percutant:

<!-- For first captcha on page --> 
<%= show_simple_captcha(:object => :foo) %> 

<!-- For next captchas on same page --> 
<%= show_simple_captcha(:object => :bar, :multi => true) %>