CAPTCHA PHP SIMPLE

Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
- - Dernière réponse : cs_claude77260
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013
- 14 oct. 2012 à 19:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50244-captcha-php-simple

cs_claude77260
Messages postés
54
Date d'inscription
dimanche 20 décembre 2009
Statut
Membre
Dernière intervention
8 avril 2013
-
marche super et bien suffisant pour le commun des mortels
merci du partage

mettre error_reporting(0)
aprés
// On initialise les sessions
session_start();

pour effacer les erreurs de variables du au php + recent
cavalier2400
Messages postés
120
Date d'inscription
mardi 8 juillet 2008
Statut
Membre
Dernière intervention
1 décembre 2010
1 -
Merci, j'ai placé la captcha sur mon site, mais je reçois ce message d'erreur avertissement session_start()...Cannot send session cache limiter - headers already sent; mais au niveau de mon ordinateur local je ne reçois aucune erreur.
J'ai utilisé le code sans aucune modification, (mon lien http://guelmachess.net/livreor.php), merci
toutoos
Messages postés
56
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
17 octobre 2009
-
Bonjour,

Voila après un an d'inactivité je reprend le codage de ce captcha. Il est vrai qu'avec le temps j'ai compris que le captcha était sincèrement faible niveau protection et un peu simple niveau codage et donc ne résistera pas longtemps à un robot.

J'ai effectué beaucoup de recherche sur le sujet pendant cette longue année d'inactivité. Je pense pouvoir vous faire un bon code avec plus de sécurité, plus d'innovation. Je posterai une nouvelle source avec le nouveau captcha pour vous tenir au courant.
malalam
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
Hello,

j'appuie Kankrelune : il ne faut pas confondre le captcha, et le code qui s'en sert.
Je ne vais donc parler que du captcha : il est assez faible, certes. Il ne bloquera pas longtemps un robot, mais suffira à éloigner les floodeurs, ce qui est largement suffisant pour des sites amateurs.
Essaye peut-être de varier les polices, et le fond...déforme les polices aussi, et change leur inclinaison.
Mais ça reste un captcha...pourquoi ne pas essayer d'innover un peu dans ce domaine ? C'est à la mode et ce serait nettement plus intéressant :-)
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Je pense surtout que tu te mélange allègrement les pinceaux popGG... le code de la captcha est recréé à chaque exécution du script et est normalement, en toute logique, détruit après vérification... si tu fais F5 tu renvois la valeur du formulaire avec l'ancien code captcha donc ça ne passe pas... donc pour ce qui est de l'antiflood aucun soucis... .. .

Pour ce qui est de la reconnaissance des caractères c'est l'ocr dont je parle mais ça demande un boot spécifique ce qui ne sera pas le cas la plupart du temps donc...

"je pense qu'un ocr réussira quand même à le casser mais c'est amplement suffisant comme anti flood"

après tout dépend du site, et de la partie du site, à protéger... par contre ton code je vois pas l'intérêt... je fais comment si je suis un gros posteur et que je veux poster plusieurs message sur plusieurs sujet en simultané sur un forum... tu différencie comment un boot qui flood d'un mec qui fait simplement 2 post d'affiler parce qu'il a oublié de dire quelque chose... bref inutile surtout que la captcha à le même rôle mais a d'autre avantage en plus que ta fonction n'a pas... .. .

Par contre pour ce qui est du code...

Niveau génération de ton code captcha, toutoos, tu t'y prend mal... il doit être généré non pas dans ta partie formulaire mais directement dans ta captcha... un simple appel vers le fichier captcha.php (via la balise img) et tout le reste est automatiquement traité et non pas d'un coté je fais le code et de l'autre je génère l'image... qui plus est a chaque affichage de ta captcha ton code doit changer il est donc logique que ça soit elle qui génère ce code... donc au début de ton fichier captcha.php tu met...

if(!isset($_SESSION)) {
session_start();
}
$_SESSION['captcha'] = '';
$chaine = array(
'a','b','c','d','e','f','g','h',
'i','j','k','l','m','n','o','p',
'q','r','s','t','u','v','w','x',
'y','z','A','B','C','D','E','F',
'G','H','I','J','K','L','M','N',
'O','P','Q','R','S','T','U','V',
'W','X','Y','Z'
);

$nb = 0;
while( $nb++ < 6 ) {
$_SESSION['captcha'] .= $chaine[rand(0,51)];
}

et si tu veux une captcha multipage tu peux insérer un id... personnellement je rajoute un temps d'expiration... .. .

2nd truc... il est totalement inutile d'utiliser md5 ça ne change rien si ce n'est que ça bouffe des ressources pour rien... si ton code est faux en md5 c'est qu'en clair il était faux... .. . ;o)

Je met 6 bon code mais peut être un peut trop simple et surtout gros problème de conception au niveau de la génération du code... .. .

@ tchaOo°