2011-03-02 3 views

Répondre

0

La façon dont je l'ai fait est simplement de ne pas utiliser le captcha du tout si le code est en cours d'exécution dans l'environnement de test. De cette façon, vous n'avez pas à vous en préoccuper pendant les tests. Bien que je l'exécute toujours dans l'environnement de développement, parce qu'au moins je peux toujours m'assurer que cela fonctionne de temps en temps.

Cependant, ce n'est pas la meilleure solution. J'aurais espéré que reCaptcha vous permettrait de définir une clé API "test" supplémentaire, où tout fonctionnerait normalement sauf que les clés seraient toujours validées, mais ce n'est pas la dernière fois que j'ai vérifié. Je suppose que la meilleure solution serait de coder le validateur pour le widget reCaptcha de sorte que si l'environnement est "test", ou basé sur un paramètre de configuration d'application, vous passez la validation sans déranger le serveur reCaptcha.

J'aimerais entendre si quelqu'un a de meilleures idées.

+0

Merci pour votre réponse. J'ai finalement fait différemment – Faboo03

0

ried quelques trucs, comme le validateur étendu, ou le widget pour tester le contexte, mais finalement je viens de le faire que: En app.yml:

test: 
    .general: 
     recaptcha_enabled: false 

Dans ma forme:

if(sfConfig::get('app_recaptcha_enabled', true)) 
    $this->validatorSchema['captcha'] = new sfValidatorReCaptcha(array('private_key' => sfConfig::get('app_recaptcha_private_key'), "required" => true)); 
else 
    $this->validatorSchema['captcha'] = new sfValidatorString(array('required' => false)); 

C'est tout. app.yml est sensible à l'environnement, il vous suffit donc de spécifier la valeur de votre environnement.

J'espère que ça va à quelqu'un!

Questions connexes