IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Plugins PHP Discussion :

sfReCaptcha en AJAX


Sujet :

Plugins PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2008
    Messages : 253
    Par défaut sfReCaptcha en AJAX
    Hello !

    J'ai l'impression que je choisi les seules choses ne marchent pas sous symfony !

    J'essaie d'utiliser le plugin sfReCaptcha dans un formulaire, ce même formulaire se charge par une requête asynchrone.

    Le rendu du capcha est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <noscript><div><object style="width:500px;height:300px" type="text/html" data="http://api.recaptcha.net/noscript?k=HERE_IS_MY_KEY"></object><textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea><input type="hidden" name="recaptcha_response_field" value="manual_challenge"/></div></noscript>
    Faut croire que ça ne lui plait pas l'asynchrone, mais je patauge pour tout de même trouver une solution.

    Des idées ?

    Merci !

  2. #2
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je ne suis jamais arrivé à utiliser ce plugin.

    Par contre, tu as un plugin sfFormExtraPlugin qui embarque entre autres choses bien utiles, le même captcha et qui lui marche bien...

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2008
    Messages : 253
    Par défaut
    J'ai désinstallé le plugin en question et installé sfFormExtraPlugin.

    Presque le même bout de code dans la réponse ajax du formulaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <script type="text/javascript">
        var RecaptchaOptions = {
        theme : 'clean',
        lang : 'en'
        };
        </script>
        <script type="text/javascript" src="http://api.recaptcha.net/challenge?k="></script>
        <noscript>
          <iframe src="http://api.recaptcha.net/noscript?k=" 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>
    Ce qui est curieux c'est que Firebug l'affiche ainsi dans le DOM:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
           &lt;iframe src="http://api.recaptcha.net/noscript?k=" height="300" width="500" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;       &lt;textarea name="recaptcha_challenge_field" rows="3" cols="40"&gt;&lt;/textarea&gt;       &lt;input type="hidden" name="recaptcha_response_field" value="manual_challenge" /&gt;
    Les caractères HTML sautent tandis qu'ils sont bien en clair dans la réponse apparemment.
    Je précise encore que le formulaire est appelé en asynchrone. J'imagine que cela doit bloquer les javascript de l'API de se charger du coup.

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Je n'ai jamais eu de problème avec celui-ci.

    Tu parles de ce qui est généré, mais pas de la configuration mise en place dans symfony (form, template,...).

    J'ai un peu l'impression que tu essayes de lui faire faire des choses pour lesquelles il n'est pas prévu, sans oser dévoiler les tortures que tu lui fais subir

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Corée

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2008
    Messages : 253
    Par défaut
    Oui, je crois que je tombe toujours dans le truc qu'il ne faut pas faire...

    Je laisse tomber mon formulaire en Ajax et je me tourne vers un type standard.

    Je me pose une question pour l'histoire du "bind".

    Cela va t-il en modifiant la méthode processForm autogénérée par doctrine ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName()));
        if ($form->isValid())
    ...
    Je ne vois pas clairement le lien avec ce qu'il faut ajouter:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        $captcha = array(
      'recaptcha_challenge_field' => $request->getParameter('recaptcha_challenge_field'),
      'recaptcha_response_field'  => $request->getParameter('recaptcha_response_field'),
    );
    $this->form->bind(array_merge($request->getParameter('contact'), array('captcha' => $captcha)));
    En mergeant captcha et $request->getParameter($form->getName()) ?

    C'est écrit d'ajouter dans tout ça action.class.php mais on ne sait guère où.

    Un exemple d'utilisation de ce captcha avec un objet doctrine serait cool sur la doc !

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    J'ai utilisé il y a longtemps, sur une application qui n'est plus en production sous cette forme, en effet, la partie création des user avec le captcha pour éviter les créations automatique ayant été avantageusement remplacée par le plugin complémentaire de sfGuard.

    Et je n'ai plus les vieux sources ici.

    Et dans mes souvenirs, j'utilisais le sfFormExtraPlugin qui inclu le même captcha. As-tu testé celui-là ? Si non, l'autre plugin, je me rappel bien n'avoir jamais réussi un challenge.

Discussions similaires

  1. [Librairies] Api AJAX
    Par ouioui2000 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 20/10/2005, 16h57
  2. [AJAX] Effectuer plusieur appel ajax
    Par shwin dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 06/10/2005, 16h40
  3. [AJAX] Ajax et javascript contenu
    Par zekey dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/09/2005, 20h16
  4. [AJAX] AJAX et javascript
    Par spud5351 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/09/2005, 10h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo