begin process at 2012 02 11 18:35:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > CAPTCHA PHP SIMPLE

CAPTCHA PHP SIMPLE


 Information sur la source

Note :
6 / 10 - par 1 personne
6,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Classé sous :Captcha, PHP, simple, session Niveau :Débutant Date de création :30/06/2009 Date de mise à jour :01/07/2009 22:36:01 Vu / téléchargé :12 500 / 1 475

Auteur : toutoos

Ecrire un message privé
Site perso
Commentaire sur cette source (13)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Le but de se code est de vous demandez votre avis sur mon petit captcha simple et de pouvoir en fournir un complet à chaqu'un qui en désire un. ( Woua le français! )


 Conclusion

Avous de joueur

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

01 juillet 2009 22:36:12 :
J'ai fais une petit système anti-flood! Je demande l'avis aux experts!

 Sources du même auteur

Source avec Zip Source avec une capture CODE BARE!!!

 Sources de la même categorie

Source avec Zip VÉRIFICATION DE FORMULAIRE EN PHP par psonic13
Source avec Zip Source avec une capture CALENDRIER RÉSERVATION POUR CHAMBRES D'HÔTES EN PHP MYSQL par oallais
Source avec Zip Source avec une capture UPLOADEUR DE FICHIERS MULTIPLES V1 par cod57
FORM, ORM POUR FORMULAIRE par choy
Source avec Zip Source avec une capture LOGIN SHA1 + CRÉATION UTILISATEUR par aventurier19

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CREATION DE COMPTE AVEC CRYPTAGE ET ESPACE DE CONNEXION SEC... par bm1982
Source avec une capture PAGINATION EN PHP par Orangina
Source avec Zip Source avec une capture GALERIE PHOTO SIMPLE À GÉRER par francky6691
Source avec Zip Source avec une capture BLOG COMPLET : NEWS, IMAGES, COMS. SIMPLE D'UTILISATION ET D... par lucas34990
Source avec Zip Source avec une capture SONDAGE SIMPLE - SANS BDD - CLASSE PHP - PROTECTION IP + CO... par mdall

Commentaires et avis

Commentaire de kankrelune le 30/06/2009 16:05:27

Slt... le résultat à l'air pas trop mal... je pense qu'un ocr réussira quand même à le casser mais c'est amplement suffisant comme anti flood... .. .

Si tu veux un exemple plus complexe regarde dans mes sources... dans mon profil... .. .

@ tchaOo°

Commentaire de popGG le 01/07/2009 10:22:45

"mais c'est amplement suffisant comme anti flood"

Désolé mais je suis pas aussi convaincu pour l'anti-flood...
Un simple F5 et hop, tout ce que t'as foutu dans ton formulaire (code captcha inclus) est réutilisé: répétition des messages, etc...
il reste plus qu'à mettre un bot pour remplir ta table SQL.

La captcha est une bonne chose mais n'oublie pas de revérifier l'anti-flood!!!

Commentaire de toutoos le 01/07/2009 12:17:23

popGG :

En faite tu voudrais que je mette un petit effacement du formulaire pour faire une petite remise a zéro? ou que je fasse une zoulie petite redirection je ne sais pas moi.

Si tu à une proposition à me faire vas y je suis tout ouï!

Commentaire de popGG le 01/07/2009 12:34:44

Je suis pas pro-php donc je ne te garantie pas que ce  que je vais te livrer soit efficace à 100%. Le but est d'éviter les répétitions de formulaire:

Tout d'abord, crée une class Util où tu pourras insérer cette petite fonction:
function antiFlood($veriFlood){
$bool=false;
if(isset($_SESSION['antiflood'])){
for($i=0 ; $i<count($veriFlood) ; $i++){
if(isset($_SESSION['antiflood'][$i])){
if($veriFlood[$i]!=$_SESSION['antiflood'][$i]){
$bool=true;
}
}else{
$bool=true;
}
}
}else{
$bool=true;
}
if($bool === true){
$_SESSION['antiflood']=$veriFlood;
}
return $bool;
}


Maintenant, l'utilisation est simple. A chaque action qui implique un enregistrement, je fais un truc du genre:

$veriFlood = array($paramForm1,$paramForm2,$paramForm3,$paramForm4);
if($Util->antiFlood($veriFlood) === false){
$erreurs[]=' ';
}

Où paramForm1/4 sont tes entrées du formulaire.
Je pense qu'on pourra trouver un moyen plus jolie et générique pour remplir le array $veriFlood...


if($erreurs==null){
// pas de flood
}else{
// flood. On enregistre rien!
}

Comme je t'ai dit, c'est un point de départ et je pense que tu peux trouver un truc plus simpa sur Internet.

Hasta luego

Commentaire de popGG le 01/07/2009 12:41:53

upss. Les tabulations n'apparaissent pas. Du coup, mon mail antérieur devient illisible :s

Commentaire de toutoos le 01/07/2009 12:48:51

Enfin je veu dire qu'en général quand on utilise cette fonction c'est pour une inscription ou un truc comme ça! donc en toute logique on vérifie que une entrée dans la base n'existe pas déjà (enfin moi je l'utilise comme ca).

Commentaire de toutoos le 01/07/2009 12:52:17

Ajout par rapport au post précédent!

Enfin je veux dire que je l'utilise avec des vérifications mais derrière je vérifie les doublons et dans le cas de présence d'une erreur il faudra donc la corriger et le captcha aura donc changé!

Commentaire de popGG le 01/07/2009 13:36:41

"pouvoir en fournir un complet à chaqu'un qui en désire un"

Si tu veux faire un captcha complet, je pense que tu devrais regarder le flood. De même, essaie de compliquer un peu la lecture de l'image (fusionne des caracteres, donne leurs un angle de lecture ou utilise une police (font) personnalisée, etc...)

Pense également que certaines personnes pourront utiliser ton captcha pour valider un simple message sur un forum, ou valider le téléchargement d'un fichier. Non seulement pour l'inscription d'un utilisateur.

Actuellement, ton captcha seul ne sert à rien niveau protection.

Bonne continuation pour la suite ;)

Buena suerte y persiste siempre en lo que haces!

Commentaire de toutoos le 01/07/2009 22:27:26

Je ne demande qu'a me perfectionner

Pour la lecture! je vous assure que ce n'est déjà pas évident à lire sur la photo il parait simple mais des fois il faut s'y reprendre à plusieurs fois.

Et pour le flood j'ai ma petite idée ne vous inquiétez pas!

Commentaire de kankrelune le 08/07/2009 11:47:55 6/10

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°

Commentaire de malalam le 30/07/2009 22:41:14 administrateur CS

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 :-)

Commentaire de toutoos le 31/07/2010 18:22:08

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.

Commentaire de cavalier2400 le 25/04/2011 09:42:41

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

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Help me....travaille en php "simple" mais payé.....!! [ par Maniac ] Salut,voila je n'y connais rien du tout en php, mais je dois "simplement" faire un forum pour un client pour qui je developpe son site...Si qq1 savait variables de session [ par grom53 ] salut, je voudrais utiliser des variables de session en PHP avec session_start, session_register... Mon script est bon (c est un ex de bouquin) mais l Session peut être?? [ par asterixobelix ] François C.J'ai un problème :Code de membre.php&lt; ?if($data['password'] != $pass) //Si il est différent faire...{ print("Mauvais mot de passe ou nom PB avec les sessions [ par lpikachu58 ] Salut les jeunes, j'ai un pb avec les sessions php. Ca marche mais j'ai warning que je voudrais bien virer. Ma question est comment ne pas avoir de wa pb de session URGENT !!!! [ par hdpasdh ] Salut j'ai un pb de comprehension avec les session, voila j'ai lu sur d sites qu'il fallai transmettre l'id de session entre les pages soit par cookie pb avec destruction de session [ par overider ] je veux detruire la session delog.php&lt;?if (session_is_registered(nom)) { session_unset(); session _destroy; } else { session_start(); ma session ne fonctionne pas a la première connexion [ par jojolafrite ] bonjour g un petit problème de session pour la création d'une section membrepour cela g trois fichier:logadmin.php(page de login)veriflog.php(script q pb de warning [ par MisterJAD ] Bonjour!avec ce code il me donne le warning ci dessous ...session_start(); if(!session_is_registered('login')) //Si la session ne contient rien dans l problème avec les sessions [ par lpefec ] mon script ne fonctionne pasidentification.php----------------------------------------------------------------&lt;html&gt;&lt;head&gt;&lt;title&gt;Log problème avec les sessions [ par lpefec ] mon script ne fonctionne pasidentification.php----------------------------------------------------------------&lt;html&gt;&lt;head&gt;&lt;title&gt;Log


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,404 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales