Intégrer un captcha dans un formulaire php
Résolu/Fermé
bg62
Messages postés
23594
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
1 mai 2024
-
27 sept. 2007 à 16:18
vegamax - 14 juin 2010 à 11:18
vegamax - 14 juin 2010 à 11:18
A voir également:
- Intégrer un captcha dans un formulaire php
- Intégrer une vidéo dans un powerpoint - Guide
- Easy php - Télécharger - Divers Web & Internet
- Récupérer compte hotmail sans formulaire ✓ - Forum Hotmail / Outlook.com
- Captcha invalide ✓ - Forum Mozilla Firefox
- Comment saisir un code captcha ✓ - Forum Matériel & Système
21 réponses
PhP
Messages postés
1767
Date d'inscription
lundi 11 décembre 2000
Statut
Membre
Dernière intervention
23 décembre 2009
606
28 sept. 2007 à 18:16
28 sept. 2007 à 18:16
Bsr,
Ben je sais pas tout tu vois car j'ignorais ce qu'était un captcha : on fait j'ignorais que les systèmes de sécurité à base de séquence tirée au hasard portaient ce nom ... lol
J'ai pas été voir si ta classe captcha fonctionne car le problème n'est pas là.
Le problème c'est de vérifier que l'utilisateur à bien entré la bonne lettre : donc PHP doit en quelque sorte s'en souvenir d'un page à l'autre.
Voilà ce qui se passe
1 : l'utilisateur appelle ta page qui génère un nouveau captcha en php sur le serveur web à partir de ta classe captcha
2 : la page est retournée à l'utilisateur avec le captcha et s'affiche sur son navigateur : c'est ton formulaire en HTML
3 : l'utilisateur valide ce qui envoie les données vers une autre page ou la même peu importe au serveur PHP avec une des lettres du captcha saisie par l'utilisateur
4 : PHP doit vérifier que la lettre saisie correspond bien à celle du captcha précédemment généré ... pour cet utilisateur et pas un autre !!
Oui mais comment ?
En effet ne perd pas de vue que plusieurs utilisateurs peuvent accèder en même temps à ton formulaire, chacun avec un captcha différent naturellement.
Je te rappelle aussi qu'une fois la page web générée par le moteur PHP sur le serveur WEB, puis envoyée au client, toutes les variables PHP sont effaçées : il ne reste aucune trace ...
Il faut donc trouver un moyen de ne pas perdre l'environnement entre 2 appels à 2 pages PHP (ce peut être la même page) tout en identifiant de façon unique l'utilisateur.
Pour ce faire tu peux soit utiliser MySQL pour stocker les variables que tu ne veux pas perdre et attribuer un identifiant unique à chaque utilisateur, soit utiliser les sessions : c'est la solution la plus simple !
D'où ma question sais-tu utiliser/as-tu déjà utilisé les sessions en PHP ?
Ben je sais pas tout tu vois car j'ignorais ce qu'était un captcha : on fait j'ignorais que les systèmes de sécurité à base de séquence tirée au hasard portaient ce nom ... lol
J'ai pas été voir si ta classe captcha fonctionne car le problème n'est pas là.
Le problème c'est de vérifier que l'utilisateur à bien entré la bonne lettre : donc PHP doit en quelque sorte s'en souvenir d'un page à l'autre.
Voilà ce qui se passe
1 : l'utilisateur appelle ta page qui génère un nouveau captcha en php sur le serveur web à partir de ta classe captcha
2 : la page est retournée à l'utilisateur avec le captcha et s'affiche sur son navigateur : c'est ton formulaire en HTML
3 : l'utilisateur valide ce qui envoie les données vers une autre page ou la même peu importe au serveur PHP avec une des lettres du captcha saisie par l'utilisateur
4 : PHP doit vérifier que la lettre saisie correspond bien à celle du captcha précédemment généré ... pour cet utilisateur et pas un autre !!
Oui mais comment ?
En effet ne perd pas de vue que plusieurs utilisateurs peuvent accèder en même temps à ton formulaire, chacun avec un captcha différent naturellement.
Je te rappelle aussi qu'une fois la page web générée par le moteur PHP sur le serveur WEB, puis envoyée au client, toutes les variables PHP sont effaçées : il ne reste aucune trace ...
Il faut donc trouver un moyen de ne pas perdre l'environnement entre 2 appels à 2 pages PHP (ce peut être la même page) tout en identifiant de façon unique l'utilisateur.
Pour ce faire tu peux soit utiliser MySQL pour stocker les variables que tu ne veux pas perdre et attribuer un identifiant unique à chaque utilisateur, soit utiliser les sessions : c'est la solution la plus simple !
D'où ma question sais-tu utiliser/as-tu déjà utilisé les sessions en PHP ?