2009-08-11 2 views
-1

Ich arbeite an einem Kommentar-Skript mit Ajax, Json und Jquery.Der beste Weg, Captcha mit einer Ajax-Form in Jquery zu machen?

Ich habe das meiste davon getan, außer dem schwierigsten Teil, Wenn ein Benutzer X Kommentare von X in mount of time post, mein PHP-Skript wird einen "Captcha" Trigger auf meine Javascript-Code unten, sagen, dass dies Benutzer braucht einen captcha-Code eingeben, bevor wir dort an die DB Kommentar hinterlassen werden

im Folgenden sehen Sie, ich habe 3 Optionen für einen Rückgabewert: Erfolg, Fehler und captcha

wenn captcha zurückgegeben wird, ich will Um einen Popup-Dialog auf dem Bildschirm zu öffnen und mein Captcha-Skript zu laden, funktioniert bisher alles bis zu diesem Punkt.

Jetzt muss ich das Captcha-Skript senden, nicht nur den Captcha-Wert, sondern auch meine Benutzer kommentieren, so dass ich nur ein verstecktes Formularfeld mit dem Kommentarwert ausfüllen muss. Einfach genug, ich habe es noch nicht getan. Wenn ein Benutzer jetzt den falschen Captcha-Wert erhält, muss er den Bildschirm neu laden, aber den Captcha-Bildschirm erneut einblenden und den Kommentar weiterhin in einem Formularwert verbergen. Hier kommt der knifflige Teil ins Spiel.

Nachdem ich meinen Plan gelesen und meinen Code unten angesehen habe, denkst du, dass ich auf dem richtigen Weg bin? Irgendwelche Vorschläge für einen besseren Weg?

<script type="text/javascript"> 
$.ajax({ 
    type: "POST", 
    url: "process.php", 
    data: dataString, 
    dataType: "json", 
    success: function(data) { 
     if (data.response === 'captcha') { 
      //they are mass posting so we need to give them the captcha form 
      // I can send the users sanitized comment through the captcha script somehow 
      // 'data.comment' is holding the comment value 
      jQuery.facebox(function() { 
       // This opens up a facebox dialog on the screen and popolates it with the captcha image and script 
       jQuery.get('captchabox.php', function(data) { 
        jQuery.facebox('' + data + '') 
        data.comment; 
       }) 
      }) 
     } else if (data.response === 'success') { 
      // success append the sanitized-comment to the page 
      $('#comments').prepend(data.comment); 
     } else if (data.response === 'error') { 
      // just an alert for testing purposes 
      alert('sorry there was an error'); 
     }; 
    } 
}); 
</script> 

UPDATE:

Nach mehr dachte, es scheint, ich muss meine captcha Verwendung Ajax auch sonst dort machen eine Seite neu laden = (

+1

@jasondavis - Sie sollten Ihre vorherige ähnliche Frage bearbeiten und eine Prämie darauf setzen. http://stackoverflow.com/questions/1257991/how-to-Deal-mit-jqu Ery-Ajax-Kommentare-und-Captcha – karim79

Antwort

-1

ich diese tun es am Ende sein Art und Weise und es funktioniert super. Recaptcha, wie zum Teufel die anderen dachten, dass verwandt war, ist unbekannt