Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > [Galerie] Réalisation de CAPTCHAs > Lecture du sujet

[Galerie] Réalisation de CAPTCHAs

On veut les votres

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  4  5  ...  37  38  39  40  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  4  5  ...  37  38  39  40  Suivante
Hors ligne anonyme # Posté le 08/08/2007 à 00:30:03
Groupe :
Reprise du dernier message de la page précédente :
Citation : tnsaad
[...] Si c'est un bot qui remplie les champs, il remplieras celui de type hidden, et si ce champ est remplie celà veut dire que c'est un robot.
Tu la connaissait pas celle là hein??? :p .


Non, mais toi non plus je crois :p Car elle à été présentée il y a 2 - 3 jours de cela sur le SdZ, je ne me rappelle plus qui c'était mais pas toi en tout cas :lol: (humour)

Citation : tnsaad
x86programmer si tu a un captcha à proposer tu es le bienvenue, sinon Image utilisateur (je rigole tu es bien sûr le bienvenue dans tous les cas :D )


Elle était bonne celle-là ^^ C'est vrai, je crois que j'ai un peu beaucoup parlé ce soir, à cause de la fatigue peut-être :-° Bonn, je vous laisse pour de bon, vous ne voulez pas renoncer o_O ( ;) ).
Hors ligne ilys # Posté le 08/08/2007 à 00:39:07
Vive le Rock, Linux, et le SDZ
Avatar
Groupe : Membres
J'ai vu "le pas toi en tout cas " écrit en blanc :colere: .
Je vois que monsieur est un fin connaisseur des truc qui se passe sur le sdz. Et oui je la connaissais pas moi aussi avant 2-3 jour de celà mais bon je la connais tu la connais c'est super.
Mais j'ai une question :
C'est quand qu'on commence à créé ces */$^!!?;_\ de CAPTCHAS
Ils sont où mes pillules anti-stress sinon je vais tué quelqu'un, et trouvez le coupable
Moi aussi je pense que je commence à être fatigué, je revient demain pour voir si il y a d'autre captcha à pêcher :D
Édité le 08/08/2007 à 00:40:13 par ilys

Fait par Tn. :soleil:
>>>>>>Mon tuto sur la Recherche séquentielle et dichotomique
>>>>>>Mon topic sur les images anti-bots
Venez signer la PETITION ANTI-CENSURE
 
Hors ligne Blackhole # Posté le 08/08/2007 à 18:40:55
Bear, and forbear
Avatar
Groupe : Membres
Bonjour à tous ^^ !
J'avais justement besoin de faire un Captcha pour mon site. Alors voilà ^^ Notez que j'ai essayé de faire dans l'efficacité ( en me réferrant à cette page ) plutôt que dans la beauté, mais c'est pas mal quand même :p !

Une image de ma premire version :

Captcha 1

Les arcs de cercle sont aléatoire, les couleurs aussi, mais sont toujours opposé à l'arrière plan pour que ce soit lisible. Rotation des lettres, présence de caractères non-alphanumériques, épaisseur des caractères variables, police utilisé variable aussi ( là, j'avais mis que Arial et Times New Roman, mais on peut mettre toutes celles que l'on veut ) ...etc... Je pense que ca devrait suffire mon petit site personnel, non ^^ ?!
Seul bémol, il arrive que certaines lettres disparaissent - tout ou en parti - masquer par le carré des autres ( qui n'est pas transparent mais de la couleur du fond ).

Aussi ai-je tester de rendre transparent le fond des lettres, mais ca pixellise tout :

Captcha 2

( encore là, c'est pas trop pixellisé ) . On peut donc décider de mettre en évidence les contours ( mais la couleur du fond est tout le temps la même désormais, à savoir Gris 50% ) ...

Captcha 3

... ou bien d'appliquer un flou gaussien sur les lettres, mais justement, c'est flou et je trouve que ca fait mal aux yeux ^^ !

Captcha 4

Voilà, c'est tout pour le moment ! Niveau beauté, y'a pas à chercher, je préfère de loin la troisième, mais niveau efficacité ... ca reste à voir ^^ !

( P-S. : J'aurais bien aimé faire varier aléatoirement l'épaisseur des arcs de cercles, mais imageSetThickness n'a pas l'air d'avoir envie de marcher aujourd'hui ... )

- Le moteur de templates le plus rapide, le plus pratique et le plus effiace ? Par ici !
- N'oubliez pas le de marquer votre message comme résolu !
- Pour trouver une aiguille dans une botte de foin, on met le feu à la botte et on passe un aimant dans les cendres.
 
Hors ligne ilys # Posté le 08/08/2007 à 18:58:53
Vive le Rock, Linux, et le SDZ
Avatar
Groupe : Membres
Si tu postais ton code ici ça serai super.
Tout le monde pourrait en profiter

Fait par Tn. :soleil:
>>>>>>Mon tuto sur la Recherche séquentielle et dichotomique
>>>>>>Mon topic sur les images anti-bots
Venez signer la PETITION ANTI-CENSURE
 
Hors ligne Moxostoma # Posté le 09/08/2007 à 03:11:14
Avatar
Groupe : Membres
Bonjour, j'ai un problème avec mon captcha...
j'ai voulus modifiez à ma façon avec un exemple page 1 mais celà ne marche pas. :(

Voici mon code, merci :D

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. session_start(); // Créér la session
  3.  
  4. //***********************
  5. //**Création de l'image**
  6. //***********************
  7.  
  8. $largeur=144;
  9. $longueur=50;
  10.  
  11. $img=imagecreatetruecolor($largeur,$longueur);
  12. $couleur = imagecolorallocate($img, 51,204,255);
  13.  
  14. //***************************
  15. //**Création des caractères**
  16. //***************************
  17.  
  18. $nombre_de_caractere=6;
  19. $caractere = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789abcdefghijklmnopqrstuvwxyz';
  20. $police = array('arial.ttf');
  21. $bord = 3;
  22. $espace = 10;
  23.  
  24.  
  25. //*************************************
  26. //**Boucle d'affichage des caractères**
  27. //*************************************
  28. for($i = 0; $i < 6; $i++)
  29. {
  30. $ligne = imagecolorallocate($img mt_rand(204,204,102), mt_rand(51,153,51), mt_rand(204,0,0), mt_rand(0,153,153), mt_rand(102,0,0), mt_rand(0,0,0), mt_rand(255,255,255), mt_rand(255,51,153)); //sy ya problème
  31. imageline($img, 0, mt_rand(0, $longueur), $largeur, mt_rand(0, $longueur), $ligne);
  32. }
  33. for($i = 0; $i < 6; $i++)
  34. {
  35. $ligne = imagecolorallocate($img mt_rand(204,204,102), mt_rand(51,153,51), mt_rand(204,0,0), mt_rand(0,153,153), mt_rand(102,0,0), mt_rand(0,0,0), mt_rand(255,255,255), mt_rand(255,51,153)); //sy ya problème
  36. imageline($img, 0, mt_rand(0, $longueur), $largeur, mt_rand(0, $longueur), $ligne);
  37.  
  38. //*************************************
  39. //**Autres**
  40. //*************************************
  41. $x = mt_rand(2,20);
  42. for($i = 0; $i < $nombre_de_caractere; $i++)
  43. {
  44. $code_ajouter = $codes[mt_rand(0,$longueur-1)];
  45. $lettres .=  $code_ajouter;
  46. $bordure = mt_rand(-25, 20);
  47. $taille = mt_rand(25,35);
  48. $taille_longueur = ($longueur / 2) + ($taille/2);
  49. $couleur_texte = imagecolorallocate($img mt_rand(204,204,102), mt_rand(51,153,51), mt_rand(204,0,0), mt_rand(0,153,153), mt_rand(102,0,0), mt_rand(0,0,0), mt_rand(255,255,255), mt_rand(255,51,153));
  50. imagettftext($img, $taille, $bordure, $x, $taille_longueur, $couleur_texte, $realpath($police[array_rand($police)]), $code_ajouter);
  51. x += 1.2 * $taille + mt_rand(0,2);
  52.  
  53. $_SESSION['mycode'] = $mycode;
  54. header('Content-type: image/png');
  55. imagepng($image);
  56. imagedestroy($image);
  57. ?>


Par avance merci ;)
Édité le 09/08/2007 à 03:17:29 par Moxostoma

Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur

Image utilisateur HO, PINAISE !! Image utilisateur


 
Connecté Jeremie64 # Posté le 09/08/2007 à 04:24:19
Get over it !
Avatar
Groupe : Membres
$mycode n'est pas définie.

LOL

Bye


Coding is more than a job, more than hobby, more than activity, it's a lifestyle !

PHP is a powerful programming language, if you know how to use it...



 
Hors ligne sbeex # Posté le 09/08/2007 à 09:37:18
Avatar
Groupe : Membres
Bonjour,
excusez-moi mais je vois des truc qui m'intriguent...
Depuis quand les bots s'amusent-t-ils à décrypter les lettres placés sur les captchas ?
De plus, chaque captcha est différent ! (Autre url d'image selon les sites, autre extension parfois etc.)
Je crois qu'il ne faut pas jouer aux fous non plus.
Vos traits pardessus les lettre (ou dessous) je ne comprend pas du tout l'utilité ça rend la lecture plus complexe et niveau estétique chacuns ces gouts...

Alors si ce que j'ai dit plus haut est faux, je suis ouvert à la discussion.
 
Hors ligne Blackhole # Posté le 09/08/2007 à 09:54:53
Bear, and forbear
Avatar
Groupe : Membres
Depuis quand les bots s'amusent-t-ils à décrypter les lettres placés sur les captchas ?
Depuis que le spam et les emmerdeurs ( désolé pour le mot, mais c'est bien ca ) existents !

Je te renvoie au message suivant : http://www.siteduzero.com/forum-83-170810-1605489.html#r1605489

- Le moteur de templates le plus rapide, le plus pratique et le plus effiace ? Par ici !
- N'oubliez pas le de marquer votre message comme résolu !
- Pour trouver une aiguille dans une botte de foin, on met le feu à la botte et on passe un aimant dans les cendres.
 
Hors ligne jaye # Posté le 09/08/2007 à 11:04:20
Avatar
Groupe : Membres
allez hop un ptit catpcha realisé vite fait pour l'occase :

EDIT : version 2 !

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. //la chaine de texte
  3. $text="AbcD56";
  4.  
  5. //image vide
  6. $image=imagecreatetruecolor(300,100);
  7.  
  8. // definition des couleurs
  9. $bleu=imagecolorallocate($image, 31, 31, 201);
  10. $rouge=imagecolorallocate($image, 201, 31, 31);
  11. $vert=imagecolorallocate($image, 31, 151, 31);
  12. $blanc=imagecolorallocate($image, 200, 200, 200);
  13.  
  14. //les memes avec un peu de transparence
  15. $bleualpha=imagecolorallocatealpha($image, 31, 31, 201, 80);
  16. $rougealpha=imagecolorallocatealpha($image, 201, 21, 21, 50);
  17. $vertalpha=imagecolorallocatealpha($image, 31, 201, 31, 50);
  18. $blancalpha=imagecolorallocatealpha($image, 220, 220, 220, 50);
  19.  
  20. //les memes avec un peu moins de transparence
  21. $bleualpha2=imagecolorallocatealpha($image, 31, 31, 241, 20);
  22. $rougealpha2=imagecolorallocatealpha($image, 201, 21, 21, 20);
  23. $vertalpha2=imagecolorallocatealpha($image, 11, 241, 61, 10);
  24. $blancalpha2=imagecolorallocatealpha($image, 220, 220, 220, 20);
  25.  
  26. //definition des motifs, notez que $motif_top utilise des couleurs avec transparence
  27. $motif_top = Array($vertalpha, $blancalpha, $rougealpha, $blancalpha, $blancalpha,  $bleualpha, $bleualpha);
  28. $motif_fond = Array($vert, $vert, $vert,$rouge, $vert, $bleu, $bleu, $vert, $blanc, $blanc, $vert, $vert);
  29.  
  30. //on remlpit l'image avec le $motif_fond
  31. imagesetstyle($image, $motif_fond);
  32. imagefill($image, 0, 0, IMG_COLOR_STYLED);
  33.  
  34. // on met les couleurs et les polices pour le texte en tableau, pour choisir aleatoirement plus tard
  35. $couleurs = array( $bleualpha2, $rougealpha2, $blancalpha2, $vertalpha2);
  36. $polices = array("gulim.ttc", "Lsansi.ttf", "palab.ttf", "BOOKOSB.TTF");
  37.  
  38. //calcul longueur du texte et espacement des caracteres
  39. $longueur=strlen($text);
  40. $pas=300/$longueur;
  41.  
  42. //on parcourt le texte caractere par caractere
  43. for ($i=0; $i<$longueur; $i++)
  44. {
  45.         $lettre=$text[$i];
  46.         //angle du caractere aleatoire
  47.         $angle=mt_rand(-30, 30);
  48.         //numero2 de couleur aleatoire, qui sera utilisé avec le tableau de couleur défini avant la boucle
  49.         $couleur1=mt_rand(0,3);
  50.         $couleur2=mt_rand(0,3);
  51.         //taille de texte aleatoire
  52.         $taille=mt_rand(40,60);
  53.         //numero de police aleatoire
  54.         $police=mt_rand(0,3);
  55.         //on definit le decalage entre les 2 caracteres
  56.         $decalage1=mt_rand(-5,5);
  57.         $decalage2=mt_rand(-5,5);
  58.         //on dessine les caracteres, avec les parametres aléatoires
  59.         imagettftext($image, $taille, $angle, $pas*$i, 80, $couleurs[$couleur1], $polices[$police], $lettre);
  60.         imagettftext($image, $taille, $angle, $pas*$i+$decalage1, 80+$decalage2, $couleurs[$couleur2], $polices[$police], $lettre);
  61. }
  62.  
  63. //on dessine un motif transparent par dessus le texte pour "brouiller" un peu plus
  64. imagesetstyle($image, $motif_top);
  65. imagefilledrectangle($image, 0, 0, 300, 100, IMG_COLOR_STYLED);
  66.  
  67. //c'est fini, on dessine l'image
  68. header("Content-type: image/png");
  69. imagepng($image);
  70.  
  71. ?>


et voici le resultat :
Image utilisateur

ca pete un peu les yeux, mais bon ca reste lisible ^^
Édité le 09/08/2007 à 17:07:38 par jaye
 
Hors ligne ilys # Posté le 09/08/2007 à 11:12:58
Vive le Rock, Linux, et le SDZ
Avatar
Groupe : Membres
Moxostoma>>>N'ayant pas de post où tester ton code je vais juste te dire les truc qu'il faut corriger.
Pour commencer audébut tu déclare une image $img, et à la fin tu lui dis de te renvoyé une image $image !!? Ou tu adapte tout ton code avec $image ou avec $img.
Puis vient imagecolorallocate , il manque des virgules entre $img et ton mt_rand.
Une autre faute que j'ai pu voir c'est la variable x avant la fin de la dernière boucle, c'est $x pas x.
Et elle est où l'accolade fermante de ta dernière boucle??
Bon ça c'est juste ce que j'ai pu voir. Tu refais des test et tu nous tiens au courant.

Citation : sbeex
Bonjour,
excusez-moi mais je vois des truc qui m'intriguent...
Depuis quand les bots s'amusent-t-ils à décrypter les lettres placés sur les captchas ?
De plus, chaque captcha est différent ! (Autre url d'image selon les sites, autre extension parfois etc.)
Je crois qu'il ne faut pas jouer aux fous non plus.
Vos traits pardessus les lettre (ou dessous) je ne comprend pas du tout l'utilité ça rend la lecture plus complexe et niveau estétique chacuns ces gouts...

Alors si ce que j'ai dit plus haut est faux, je suis ouvert à la discussion.


>> Citation : Blackhole
Depuis quand les bots s'amusent-t-ils à décrypter les lettres placés sur les captchas ?
Depuis que le spam et les emmerdeurs ( désolé pour le mot, mais c'est bien ca ) existents !

Je te renvoie au message suivant : http://www.siteduzero.com/forum-83-170810-1605489.html#r1605489


Merci blackhole ça doit être la centième foie (j'exagère :p ) que je le répète.

>>>>>jaye: Merci de ta participation jaye ton captcha est super, mais ton code manque de commentaire. Ca serais bien si tu le commentais comme ça les zéros pourrons comprendre ce que t'as fais. ;)

Fait par Tn. :soleil:
>>>>>>Mon tuto sur la Recherche séquentielle et dichotomique
>>>>>>Mon topic sur les images anti-bots
Venez signer la PETITION ANTI-CENSURE
 
Hors ligne jaye # Posté le 09/08/2007 à 11:23:43
Avatar
Groupe : Membres
Hors ligne bilou89 # Posté le 09/08/2007 à 12:21:29
Groupe : Membres
Salut,

Voici le mien :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. /***************************************/
  3. /*** Captcha par bilou89 ***/
  4. /*** bilou89-4sang@hotmail.fr ***/
  5. /***************************************/
  6.  
  7. session_start(); // Création de la session
  8.  
  9. $largeur = 300; // Largeur de l'image
  10. $hauteur = 60; // Hauteur de l'image
  11.  
  12. // Liste des polices utilisées aléatoirement, à placer dans le dossier police/
  13. $polices = array('polices/trebuc.ttf', 'polices/tahomabd.ttf', 'polices/verdanab.ttf');
  14.  
  15. $image = imagecreatetruecolor($largeur, $hauteur); // Création de l'image
  16. $fond = imagecolorallocate($image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150)); // Couleur de fond
  17. imagefill($image, 0, 0, $fond); // Coloration du fond
  18.  
  19.  
  20. /**************************************/
  21. /***  Traçage des lignes/cercles sur le fond ***/
  22. /**************************************/
  23.  
  24. // 3 lignes vertial
  25. for($i = 0; $i < 3; $i++)
  26. {
  27.         $couleur_ligne = imagecolorallocate($image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150)); // Couleur de la ligne
  28.         imagesetthickness($image, mt_rand(1, 4)); // Changement de l'épaisseur de la ligne
  29.         imageline($image, 0, mt_rand(0, $hauteur), $largeur, mt_rand(0, $hauteur), $couleur_ligne); // Traçage de la ligne
  30. }
  31.  
  32. // 3 lignes horizontal
  33. for($i = 0; $i < 3; $i++)
  34. {
  35.         $couleur_ligne = imagecolorallocate($image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150)); // Couleur de la ligne
  36.         imagesetthickness($image, mt_rand(1, 4)); // Changement de l'épaisseur de la ligne
  37.         imageline($image, mt_rand(0, $largeur), 0, mt_rand(0, $largeur), $hauteur, $couleur_ligne); // Traçage de la ligne
  38. }
  39.  
  40. // 3 cercles
  41. for($i = 0; $i < 3; $i++)
  42. {
  43.         $couleur_ligne = imagecolorallocate($image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150)); // Couleur du cercle
  44.         imagesetthickness($image, mt_rand(1, 2)); // Changement de l'épaisseur du cercle
  45.         imageellipse($image, mt_rand(10, 290), mt_rand(10, 40), mt_rand(5, 60), mt_rand(5, 60), $couleur_ligne); //  Traçage du cercle
  46. }
  47.  
  48. imagesetthickness($image, 1); // Remise de l'épaisseur des lignes, cercles, ... à 1px
  49.  
  50. /**************************************/
  51. /*** Traçage des caractères sur le fond ***/
  52. /**************************************/
  53.  
  54. $couleur_lettres = imagecolorallocate($image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150)); // Couleur des lettres de fond
  55. $nb_caracteres = 20; // Nombre de caractères citués au fond
  56. $lettres = 'abcdefghijklmnopqrstuvwxyz-+*/@$&éè'; // Caractères utilisés pour les lettres de fond
  57. $lettres_melange = strlen($lettres); // Mélange des caractèred
  58.  
  59. $x = mt_rand(5, 295); // Définition aléatoire de la position de X
  60. $y = mt_rand(5, 55); // Définition aléatoire de la position de Y
  61.  
  62. $i = 0;
  63. // Boucle pour déssiner les caractères de fond
  64. while($i < $nb_caracteres)
  65. {      
  66.         $lettre_a_ajouter = $lettres[mt_rand(0, $lettres_melange - 1)]; // Selection de la lettre à ajouter
  67.         $taille = mt_rand(12, 20); // Définition de la taille de la lettre
  68.         $angle = mt_rand(0, 180); // Définition de l'angle de la lettre
  69.        
  70.         imagettftext($image, $taille, $angle, $x ,$y, $couleur_lettres, realpath($polices[array_rand($polices)]), $lettre_a_ajouter); // Traçage de la lettre
  71.        
  72.         $x = mt_rand(5, 295); // Changement de position de X
  73.         $y = mt_rand(5, 55); // Changement de position de Y
  74.        
  75.         $i++; // Inscrémentation de 1
  76. }
  77.  
  78. /**************************************/
  79. /*** Traçage et création du code ***/
  80. /**************************************/
  81.  
  82. $nb_caracteres = 6; // Nombre de caractères
  83. $lettres = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789'; // Caractères autorisés
  84. $lettres_melange = strlen($lettres); // Mélange des caractères
  85. $code = ''; // Création de $code
  86.  
  87. $x = mt_rand(2, 20); // Définition aléatoire de X
  88. $y = ($hauteur / 2) + mt_rand(0, 10); // Definition de Y ~ au milieu de l'image
  89.  
  90. $i = 0;
  91. // Boucle pour dessiner les lettres
  92. while($i < $nb_caracteres)
  93. {
  94.         $lettre_a_ajouter = $lettres[mt_rand(0, $lettres_melange - 1)]; // Selection de la lettres
  95.         $taille = mt_rand(25,35); // Définition de la taille
  96.         $angle = mt_rand(-30, 25); // Définition de l'angle
  97.        
  98.         $code .=  $lettre_a_ajouter; // Ajout de la lettre dans $code
  99.        
  100.         $couleur_lettre = imagecolorallocate($image, mt_rand(150, 255), mt_rand(150, 255), mt_rand(150, 255)); // Selection de la couleur de la lettre
  101.        
  102.         imagettftext($image, $taille, $angle, $x, $y, $couleur_lettre, realpath($polices[array_rand($polices)]), $lettre_a_ajouter); // Traçage de la lettre
  103.    
  104.         $x += $taille + mt_rand(2, 20); // Changement de position de X
  105.         $y = ($hauteur / 2) + mt_rand(10, 15); // Petit changement de position de Y
  106.        
  107.         $i++; // Incrémentation de 1
  108. }
  109.  
  110. /**************************************/
  111. /***  Traçage des lignes/cercles sur le devant ***/
  112. /**************************************/
  113.  
  114. // 2 lignes vertial
  115. for($i = 0; $i < 2; $i++)
  116. {
  117.         $couleur_ligne = imagecolorallocate($image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150)); // Couleur de la ligne
  118.         imageline($image, 0, mt_rand(0, $hauteur), $largeur, mt_rand(0, $hauteur), $couleur_ligne); // Traçage de la ligne
  119. }
  120.  
  121. // 2 lignes horizontal
  122. for($i = 0; $i < 2; $i++)
  123. {
  124.         $couleur_ligne = imagecolorallocate($image, mt_rand(0, 150), mt_rand(0, 150), mt_rand(0, 150)); // Couleur de la ligne
  125.         imageline($image, mt_rand(0, $largeur), 0, mt_rand(0, $largeur), $hauteur, $couleur_ligne); // Traçage de la ligne
  126. }
  127.  
  128. $_SESSION['code'] = $code; // Enregistrement du $code dans la session
  129.  
  130. header('Content-type: image/png'); // Déclaration de la création d'un image PNG
  131. imagepng($image); // Création de l'image
  132. ?>

Voici le résultat :
Image utilisateur

Image utilisateur

Image utilisateur

EDIT : version en N&B disponible ici
Édité le 13/09/2007 à 18:38:40 par bilou89

Image utilisateur
 
Hors ligne ilys # Posté le 09/08/2007 à 14:09:36
Vive le Rock, Linux, et le SDZ
Avatar
Groupe : Membres
Très belle démonstration bilou89, et merci pour la page de test.

Fait par Tn. :soleil:
>>>>>>Mon tuto sur la Recherche séquentielle et dichotomique
>>>>>>Mon topic sur les images anti-bots
Venez signer la PETITION ANTI-CENSURE
 
Hors ligne jaye # Posté le 09/08/2007 à 14:51:53
Avatar
Groupe : Membres
bon j'ai un peu amélioré mon captcha (texte doublé, taille et police aleatoire).

voir le code et l'image de démo sur mon premier message que j'ai édité ^^

bilou89, pas bete l'idée de mettre des caracteres en fond, de quoi faire perdre la tete a un OCR :)
 
Hors ligne Moxostoma # Posté le 09/08/2007 à 16:06:15
Avatar
Groupe : Membres
Bonjour, j'ai corriger toutes mes erreur, mais pour les variable de $image au lieu de $img c'était la fatigue je crois ^^
Mais , celà ne marche toujours pas :(

PHP me met une erreur :
Citation : moi
Parse error: syntax error, unexpected $end in /home/florian1/domains/zone-dinogaia.omivu.net/public_html/captcha/crypt.php on line 57


Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. imagedestroy($img);
  3. ?> //ligne 57


Est, je vous poste mon code "corriger"...

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. session_start(); // Créér la session
  3.  
  4. //***********************
  5. //**Création de l'image**
  6. //***********************
  7.  
  8. $largeur=144;
  9. $longueur=50;
  10.  
  11. $img = imagecreatetruecolor($largeur,$longueur);
  12. $couleur = imagecolorallocate($img, 51,204,255);
  13.  
  14. //***************************
  15. //**Création des caractères**
  16. //***************************
  17.  
  18. $nombre_de_caractere=6;
  19. $caractere = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789abcdefghijklmnopqrstuvwxyz';
  20. $police = array('arial.ttf');
  21. $bord = 3;
  22. $espace = 10;
  23.  
  24.  
  25. //*************************************
  26. //**Boucle d'affichage des caractères**
  27. //*************************************
  28. for($i = 0; $i < 6; $i++)
  29. {
  30. $ligne = imagecolorallocate($img, mt_rand(204,204,102), mt_rand(51,153,51), mt_rand(204,0,0), mt_rand(0,153,153), mt_rand(102,0,0), mt_rand(0,0,0), mt_rand(255,255,255), mt_rand(255,51,153)); //sy ya problème
  31. imageline($img, 0, mt_rand(0, $longueur), $largeur, mt_rand(0, $longueur), $ligne);
  32. }
  33. for($i = 0; $i < 6; $i++)
  34. {
  35. $ligne = imagecolorallocate($img, mt_rand(204,204,102), mt_rand(51,153,51), mt_rand(204,0,0), mt_rand(0,153,153), mt_rand(102,0,0), mt_rand(0,0,0), mt_rand(255,255,255), mt_rand(255,51,153)); //sy ya problème
  36. imageline($img, 0, mt_rand(0, $longueur), $largeur, mt_rand(0, $longueur), $ligne);
  37.  
  38. //*************************************
  39. //**Autres**
  40. //*************************************
  41. $x = mt_rand(2,20);
  42. for($i = 0; $i < $nombre_de_caractere; $i++)
  43. {
  44. $code_ajouter = $codes[mt_rand(0,$longueur-1)];
  45. $lettres .=  $code_ajouter;
  46. $bordure = mt_rand(-25, 20);
  47. $taille = mt_rand(25,35);
  48. $taille_longueur = ($longueur / 2) + ($taille/2);
  49. $couleur_texte = imagecolorallocate($img, mt_rand(204,204,102), mt_rand(51,153,51), mt_rand(204,0,0), mt_rand(0,153,153), mt_rand(102,0,0), mt_rand(0,0,0), mt_rand(255,255,255), mt_rand(255,51,153));
  50. imagettftext($img, $taille, $bordure, $x, $taille_longueur, $couleur_texte, $realpath($police[array_rand($police)]), $code_ajouter);
  51. $x += 1.2 * $taille + mt_rand(0,2);
  52.  }
  53. $_SESSION['mycode'] = $mycode;
  54. header('Content-type: image/png');
  55. imagepng($img);
  56. imagedestroy($img);
  57. ?>



Est pour la page d'index ou va être afficher l'image, voici quelque code
parce qu'elle ne s'affiche pas :lol:

Code : HTML - Afficher / masquer les numéros de ligne
  1. <img src="crypt.php"  alt="image captcha anti-bot"/> <br />
  2.                 Votre code ici : <input type="text" name="verif_code" /><br />


Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php if (isset($_POST['pseudo']) AND isset($_POST['message']) AND isset($_POST['verif_code']) AND $_POST['verif_code']==$_SESSION['mycode'])?>

PS: J'ai mis un session_start en haut de l'index ;)
est c'est pour mettre dans la page de mon livre d'or "le captcha" :)

Merci :D
Édité le 09/08/2007 à 16:09:47 par Moxostoma

Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur Image utilisateur

Image utilisateur HO, PINAISE !! Image utilisateur


 
Hors ligne wonerz # Posté le 09/08/2007 à 16:47:04
Avatar
Groupe : Membres
J'ai un peu amélioré mon code du début,dites moi quel style vous préférez:
1)Image utilisateur2)Image utilisateur3)Image utilisateur
1)=traits aléatoires + écriture dans la même couleur
2)=traits aléatoires + écriture dans une couleur aléatoire
3)=traits aléatoires + écriture dans une couleur aléatoire + fusion de fond
Hors ligne Blackhole # Posté le 09/08/2007 à 16:57:37
Bear, and forbear
Avatar
Groupe : Membres
Je trouve pas tes Captcha très beau, bilou89, par contre ils doivent être très efficaces ;) Bravo ^^ !

Ok, voilà mon code ^^ ! Seul les 9 premières variables sont à modifier ;) ! Il est pas commenté mais je pense pas que ce soit nécéssaire, si ?
( Notez aussi que je l'ai pas relu pour voir s'il était optimisé ;) )

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. /**************************
  3. *** Captcha PAR Blackhole ***
  4. **************************/
  5. header('Content-type: image/png');
  6.  
  7. $alphabet = str_split('ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890@!()[]{}=#@+-&$!?:');
  8. $largeur_image = 300;
  9. $hauteur_image = 80;
  10. $nb_caractere_chaine = 5;
  11. $flottement_couleur = 30;
  12. $flottement_rotation = 30;
  13. $nb_cercle = 15;
  14. $flottement_couleur_cercle = 100;
  15. $anti_effacement = true;
  16.  
  17. $nb_caractere_total = count($alphabet);
  18. $image = imageCreateTrueColor($largeur_image, $hauteur_image);
  19. $couleur_fond = array(mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));
  20. $fond = imageColorAllocate($image, $couleur_fond[0], $couleur_fond[1], $couleur