2009-05-16 14 views
2

J'ai un formulaire d'inscription utilisateur en PHP .Je mettre l'image chèque captcha dans le page.I utilisé comme cettePHP: Rechargement l'image captcha de javascript

<img src="captcha.php" alt="Enter this text in the adjacent text box" id="imgCaptcha" /> 

et dans mon javascript je validera cela avec le même nombre qui est généré dans l'image (à partir de la page captcha.php). Ce nombre a également été défini dans une variable de session. Maintenant, je veux recharger l'image à une autre image de mon javascript, si la validation échoue. Y at-il un moyen de le faire?

Dans ma page captcha.php, je crée un nombre aléatoirement, puis je crée une image en utilisant imagejpeg. Je mets ce numéro (dans l'image) comme la session varible également

S'il vous plaît me guider pour résoudre ce

Merci à l'avance

+2

vous voudrez probablement changer l'attribut Alt en Titre. Le texte Alt sera affiché si l'image ne peut pas être chargée ou si l'utilisateur a spécifiquement désactivé le chargement de l'image. Dans ce cas, l'utilisateur ne pourra pas lire l'image captcha et entrer n'importe quoi dans la zone de texte adjacente. Ou voulez-vous réellement que l'utilisateur entre "Entrez ce texte dans la zone de texte adjacente" dans la zone de texte? (Je sais que vous ne le faites pas, mais c'est à quel point cela pourrait être déroutant si vous utilisez Alt au lieu du titre) –

Répondre

5

Vous devez injecter captcha.php dans la page en utilisant ajax. Il y a plusieurs façons de le faire:

  • javascript en utilisant XHR mais cela peut être pénible. Here est un exemple.
  • jQuery fournit un moyen simple de le faire, par exemple:.

    $ ('# someButton') cliquez sur (function() {$ ('# someDiv') charge ('captcha.php'.); });

  • prototype.js est un peu plus verbeux, mais fait le travail. Example.

Je suggère d'utiliser jQuery, il y a great examples dans la documentation.

Si votre page d'inscription renvoie une erreur de validation, vous n'avez pas besoin d'utiliser javascript pour que le captcha soit rechargé, cela devrait se faire automatiquement.

+0

réponse génial. +3 (oh, mais un seul compte;)) –