actualiser un captcha

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : actualiser un captcha

par AB » 29 oct. 2007, 02:10

L'explication était dans les commentaires :wink:
// on génére un id bidon à partir de l'heure pour que la valeur soit différente à chaque clic sur le lien
...
// et enfin on remplace par l'url, avec un paramètre bidon qui devrait forcer l'actualisation en changeant l'url demandée
En générant une valeur toujours différente pour refresh, le navigateur rafraichit la page car quelque chose a changé dans l'url.

par tartpion » 28 oct. 2007, 18:34

merci a toi ryle je n'ai pas compris pourquoi il faut faire passer des trucs bidon dans l'url j'aimerais que tu m'explique ca en quelque mots mais sinon un grand merci ca marche nikel

par Ryle » 26 oct. 2007, 11:39

C'est probablement parce que la nouvelle valeur du src est égale à l'actuelle.. essaye comme ceci :

histoire d'y voir plus clair on va faire appel à une fonction :

Code : Tout sélectionner

<a href="javascript:actualiseCaptcha();">actualiser l'image</a>
<script type="text/javascript">
function actualiseCaptcha() {
  // on génére un id bidon à partir de l'heure pour que la valeur soit différente à chaque clic sur le lien
  var d = new Date(); // on créer un objet date en js
  var id = d.getHours()+""+d.getMinutes()+""+d.getSeconds(); // on concatène heure, min et sec
  // et enfin on remplace par l'url, avec un paramètre bidon qui devrait forcer l'actualisation en changeant l'url demandée
  document.getElementById('captcha').src = 'includes/captcha.php?refresh=' + id;
}
</script>
Pas testé par contre, je te laisse essayer :)

par Invité » 25 oct. 2007, 20:01

non desolé ryde mais ca ne marche pas
<p align="center"><img alt="captcha" src="includes/captcha.php" name="captcha" title="captcha" id="captcha"/></p>

<a href="javascript:document.getElementById('captcha').src = 'includes/captcha.php';">actualiser l'image</a>

<p align="center">veuillez recopier les 4 caracteres se trouvant sur l'image ci dessus: <input name="captcha" type="text" size="20" />
</p>
à mon avis j'ai du faire une betise juste je te dis que la page s'appelle formulaire.php et que l'image se trouve dans le fichier include et s'appelle captcha.php

voila merci encore cher ryde

par Ryle » 25 oct. 2007, 18:50

ben euh... je peux t'orienter vers le forum javascript du site ;)

Dans la version simple, l'idée est d'identifier l'image en lui affectant un id :

Code : Tout sélectionner

<img src="..." alt="..." id="captcha" />
Et ensuite, lorsque l'utilisateur clique sur ton lien, mettre à jour cette image :

Code : Tout sélectionner

<a href="javascript:document.getElementById('captcha').src = 'url_image_generee.php';">...</a>
Où :
document : correspond à la page
document.getElementById('captcha') : l'élément de la page dont l'id est "captcha" (donc l'image)
document.getElementById('captcha').src : l'attribut "src" de l'élément :)

(il se peut qu'il faille passer un paramètre bidon dans l'url pour éviter qu'il ne reprenne l'image du cache...)

par tartpion » 25 oct. 2007, 17:02

le probleme c'est que je n'y connais pas trop au javascript pourrais tu m'aider un peu plus ou m'orienter vers un endroit qui pourrait m'aider...

merci

par Ryle » 25 oct. 2007, 16:59

Avec du javascript. Il te suffit de modifier l'attribut src de ton image pour que le navigateur charge la nouvelle image générée par le serveur :)

actualiser un captcha

par tartpion » 25 oct. 2007, 16:43

salut a tous
voila mon probleme est simple j'ai juste besoin de savoir comment faire pour pouvoir mettre un lien qui reactualise mon captcha sans actualiser la page

merci d'avance