begin process at 2012 02 12 19:54:34
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Sécurité & Cryptage

 > WAVY CAPTCHA

WAVY CAPTCHA


 Information sur la source

Note :
8 / 10 - par 2 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Sécurité & Cryptage Classé sous :captcha, formulaire, protection, code, session Niveau :Débutant Date de création :12/01/2007 Vu / téléchargé :9 798 / 594

Auteur : malalam

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

 Description

Cliquez pour voir la capture en taille normale
Encore un captcha.
Pour celui-ci, je ne me suis pas vraiment foulé ;-)
J'ai pris la base du code de Coockiesch : http://www.phpcs.com/codes/IMAGE-ANTI-SPAM_38969.a spx
et l'algorithme de la classe Kaptcha de Kruglov Sergei : http://www.phpclasses.org/browse/package/3193.html pour les vagues.

L'utilisation est comme d'hab : on définit les variables au début du fichier pour personnaliser.
On récupère dans la variable de session $_SESSION['captcha'] la chaîne.

Voilà :-)

Source

  • <?php
  • /**
  • * Wavy Captcha
  • * @author : Johan Barbier <johan.barbier@gmail.com>
  • * Original idea and code from Coockiesch : http://www.phpcs.com/codes/IMAGE-ANTI-SPAM_38969.aspx
  • * Algorithm for wavy stuff from Kruglov Sergei : http://www.phpclasses.org/browse/package/3193.html
  • * I just mixed both, basically
  • */
  • // definitions
  • $foreground_color = array(mt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
  • $background_color = array(mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));
  • $strlen = 5;
  • $width = $strlen * 30 + 20;
  • $height = 60;
  • $iLinesAndArcs = 10;
  • $iFontMax = 20;
  • $iFontMin = 25;
  • $iFontRotationMin = -30;
  • $iFontRotationMax = 30;
  • $iFontBaseLine = $height - 15;
  • $iFontSpace = 20;
  • $iFontMult = 30;
  • $rMin = 180;
  • $rMax = 255;
  • $vMin = 180;
  • $vMax = 255;
  • $bMin = 180;
  • $bMax = 255;
  • $sTTFFontPath = 'verdana.ttf';
  • // création
  • $img = imagecreatetruecolor($width, $height);
  • $img2 = imagecreatetruecolor($width, $height);
  • imageantialias( $img, 1 );
  • $foreground = imagecolorallocate($img, $foreground_color[0], $foreground_color[1], $foreground_color[2]);
  • $background = imagecolorallocate($img, $background_color[0], $background_color[1], $background_color[2]);
  • imagefill ($img, 0,0,$background);
  • $rand1=mt_rand(900000,1000000)/10000000;
  • $rand2=mt_rand(900000,1000000)/10000000;
  • $rand3=mt_rand(900000,1000000)/10000000;
  • $rand4=mt_rand(900000,1000000)/10000000;
  • // phases
  • $rand5=mt_rand(0,3141592)/500000;
  • $rand6=mt_rand(0,3141592)/500000;
  • $rand7=mt_rand(0,3141592)/500000;
  • $rand8=mt_rand(0,3141592)/500000;
  • // amplitudes
  • $rand9=mt_rand(330,420)/110;
  • $rand10=mt_rand(330,450)/110;
  • for( $i = 0; $i < $iLinesAndArcs; $i++ ) {
  • $r = mt_rand ($rMin, $rMax);
  • $v = mt_rand ($vMin, $vMax);
  • $b = mt_rand ($bMin, $bMax);
  • $color = imagecolorallocate($img, $r, $v, $b);
  • imageline( $img, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), $color);
  • imagearc($img, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), 0, 360, $color);
  • }
  • // chaine
  • $string = 'ABCDEFGHIJKLMNPQRSTUVWXYZ23456789';
  • $chaine = '';
  • for( $i = 0; $i < $strlen; $i++ )
  • $chaine .= $string[ mt_rand( 0, strlen ($string) - 1 ) ];
  • $_SESSION['test'] = $chaine;
  • for( $i = 0; $i < $strlen; $i++ ) {
  • imagettftext( $img, mt_rand($iFontMax, $iFontMin), mt_rand($iFontRotationMin, $iFontRotationMax), $i * $iFontMult + $iFontSpace, $iFontBaseLine, $foreground, $sTTFFontPath, $chaine[$i] );
  • }
  • //wavy stuff
  • for($x=0;$x<$width;$x++){
  • for($y=0;$y<$height;$y++){
  • $sx=$x+(sin($x*$rand1+$rand5)+sin($y*$rand3+$rand6))*$rand9-$width/2+($width/2)+1;
  • $sy=$y+(sin($x*$rand2+$rand7)+sin($y*$rand4+$rand8))*$rand10;
  • if($sx<0 || $sy<0 || $sx>=$width-1 || $sy>=$height-1){
  • $color=255;
  • $color_x=255;
  • $color_y=255;
  • $color_xy=255;
  • }else{
  • $color=imagecolorat($img, $sx, $sy) & 0xFF;
  • $color_x=imagecolorat($img, $sx+1, $sy) & 0xFF;
  • $color_y=imagecolorat($img, $sx, $sy+1) & 0xFF;
  • $color_xy=imagecolorat($img, $sx+1, $sy+1) & 0xFF;
  • }
  • if($color==0 && $color_x==0 && $color_y==0 && $color_xy==0){
  • $newred=$foreground_color[0];
  • $newgreen=$foreground_color[1];
  • $newblue=$foreground_color[2];
  • }else if($color==255 && $color_x==255 && $color_y==255 && $color_xy==255){
  • $newred=$background_color[0];
  • $newgreen=$background_color[1];
  • $newblue=$background_color[2];
  • }else{
  • $frsx=$sx-floor($sx);
  • $frsy=$sy-floor($sy);
  • $frsx1=1-$frsx;
  • $frsy1=1-$frsy;
  • $newcolor=(
  • $color*$frsx1*$frsy1+
  • $color_x*$frsx*$frsy1+
  • $color_y*$frsx1*$frsy+
  • $color_xy*$frsx*$frsy);
  • if($newcolor>255) $newcolor=255;
  • $newcolor=$newcolor/255;
  • $newcolor0=1-$newcolor;
  • $newred=$newcolor0*$foreground_color[0]+$newcolor*$background_color[0];
  • $newgreen=$newcolor0*$foreground_color[1]+$newcolor*$background_color[1];
  • $newblue=$newcolor0*$foreground_color[2]+$newcolor*$background_color[2];
  • }
  • imagesetpixel($img2, $x, $y, imagecolorallocate($img2, $newred, $newgreen, $newblue));
  • }
  • }
  • // bordure
  • $noir = imagecolorallocate ($img2,0,0,0);
  • imageline( $img2, 0, 0, $width, 0, $noir );
  • imageline( $img2, 0, $height - 1, $width, $height - 1, $noir );
  • imageline( $img2, 0, 0, 0, $height, $noir );
  • imageline( $img2, $width - 1, 0, $width - 1, $height, $noir );
  • // header: image
  • header("Content-type: image/png");
  • imagepng( $img2 );
  • imagedestroy( $img2 );
  • ?>
<?php
/**
 * Wavy Captcha
 * @author : Johan Barbier <johan.barbier@gmail.com>
 * Original idea and code from Coockiesch : http://www.phpcs.com/codes/IMAGE-ANTI-SPAM_38969.aspx
 * Algorithm for wavy stuff from Kruglov Sergei : http://www.phpclasses.org/browse/package/3193.html
 * I just mixed both, basically
 */
// definitions
$foreground_color = array(mt_rand(0,100), mt_rand(0,100), mt_rand(0,100));
$background_color = array(mt_rand(200,255), mt_rand(200,255), mt_rand(200,255));

$strlen = 5;

$width = $strlen * 30 + 20;
$height = 60;

$iLinesAndArcs = 10;

$iFontMax = 20;
$iFontMin = 25;
$iFontRotationMin = -30;
$iFontRotationMax = 30;
$iFontBaseLine = $height - 15;
$iFontSpace = 20;
$iFontMult = 30;

$rMin = 180;
$rMax = 255;
$vMin = 180;
$vMax = 255;
$bMin = 180;
$bMax = 255;

$sTTFFontPath = 'verdana.ttf';

// création
$img = imagecreatetruecolor($width, $height);
$img2 = imagecreatetruecolor($width, $height);
imageantialias( $img, 1 );

$foreground = imagecolorallocate($img, $foreground_color[0], $foreground_color[1], $foreground_color[2]);
$background = imagecolorallocate($img, $background_color[0], $background_color[1], $background_color[2]);

imagefill ($img, 0,0,$background);

$rand1=mt_rand(900000,1000000)/10000000;
$rand2=mt_rand(900000,1000000)/10000000;
$rand3=mt_rand(900000,1000000)/10000000;
$rand4=mt_rand(900000,1000000)/10000000;
// phases
$rand5=mt_rand(0,3141592)/500000;
$rand6=mt_rand(0,3141592)/500000;
$rand7=mt_rand(0,3141592)/500000;
$rand8=mt_rand(0,3141592)/500000;
// amplitudes
$rand9=mt_rand(330,420)/110;
$rand10=mt_rand(330,450)/110;

for( $i = 0; $i < $iLinesAndArcs; $i++ ) {
	$r = mt_rand ($rMin, $rMax);
	$v = mt_rand ($vMin, $vMax);
	$b = mt_rand ($bMin, $bMax);
	$color = imagecolorallocate($img, $r, $v, $b);
	imageline( $img, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), $color);
	imagearc($img, mt_rand(0, $width), mt_rand(0, $height), mt_rand(0, $width), mt_rand(0, $height), 0, 360, $color);
}

// chaine
$string = 'ABCDEFGHIJKLMNPQRSTUVWXYZ23456789';
$chaine = '';
for( $i = 0; $i < $strlen; $i++ )
$chaine .= $string[ mt_rand( 0, strlen ($string) - 1 ) ];

$_SESSION['test'] = $chaine;

for( $i = 0; $i < $strlen; $i++ ) {
	imagettftext( $img, mt_rand($iFontMax, $iFontMin), mt_rand($iFontRotationMin, $iFontRotationMax), $i * $iFontMult + $iFontSpace, $iFontBaseLine, $foreground, $sTTFFontPath, $chaine[$i] );
}

//wavy stuff
for($x=0;$x<$width;$x++){
    for($y=0;$y<$height;$y++){
        $sx=$x+(sin($x*$rand1+$rand5)+sin($y*$rand3+$rand6))*$rand9-$width/2+($width/2)+1;
        $sy=$y+(sin($x*$rand2+$rand7)+sin($y*$rand4+$rand8))*$rand10;

        if($sx<0 || $sy<0 || $sx>=$width-1 || $sy>=$height-1){
            $color=255;
            $color_x=255;
            $color_y=255;
            $color_xy=255;
        }else{
            $color=imagecolorat($img, $sx, $sy) & 0xFF;
            $color_x=imagecolorat($img, $sx+1, $sy) & 0xFF;
            $color_y=imagecolorat($img, $sx, $sy+1) & 0xFF;
            $color_xy=imagecolorat($img, $sx+1, $sy+1) & 0xFF;
        }

        if($color==0 && $color_x==0 && $color_y==0 && $color_xy==0){
            $newred=$foreground_color[0];
            $newgreen=$foreground_color[1];
            $newblue=$foreground_color[2];
        }else if($color==255 && $color_x==255 && $color_y==255 && $color_xy==255){
        	$newred=$background_color[0];
            $newgreen=$background_color[1];
            $newblue=$background_color[2];
        }else{
            $frsx=$sx-floor($sx);
            $frsy=$sy-floor($sy);
            $frsx1=1-$frsx;
            $frsy1=1-$frsy;

            $newcolor=(
                $color*$frsx1*$frsy1+
                $color_x*$frsx*$frsy1+
                $color_y*$frsx1*$frsy+
                $color_xy*$frsx*$frsy);

            if($newcolor>255) $newcolor=255;
            $newcolor=$newcolor/255;
            $newcolor0=1-$newcolor;


            $newred=$newcolor0*$foreground_color[0]+$newcolor*$background_color[0];
            $newgreen=$newcolor0*$foreground_color[1]+$newcolor*$background_color[1];
            $newblue=$newcolor0*$foreground_color[2]+$newcolor*$background_color[2];
        }

        imagesetpixel($img2, $x, $y, imagecolorallocate($img2, $newred, $newgreen, $newblue));
    }
}


// bordure
$noir = imagecolorallocate ($img2,0,0,0);
imageline( $img2, 0, 0, $width, 0, $noir );
imageline( $img2, 0, $height - 1, $width, $height - 1, $noir );
imageline( $img2, 0, 0, 0, $height, $noir );
imageline( $img2, $width - 1, 0, $width - 1, $height, $noir );


// header: image
header("Content-type: image/png");
imagepng( $img2 );
imagedestroy( $img2 );

?>


 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


 Sources du même auteur

Source avec Zip ASTUCES/HACK PHP
SQUELETTE DE GESTION DES DROITS
[PHP 5.1] CLASS STRING : NOUVEL EXEMPLE SUR LA SPL
Source avec Zip Source avec une capture [PHP 5.1] PHOTOPHOP (PHPDRAW 2)
Source avec Zip Source avec une capture [PHP5.1] O-LOC : CLASSE ET BACKOFFICE D'INTERNATIONALISATION

 Sources de la même categorie

Source avec Zip Source avec une capture ACCÈS, ESPACE MEMBRE AVEC INSCRIPTION ET DÉSINSCRIPTION PAR ... par stephelle
Source avec Zip CRYPTAGE REVERSIBLE par Mokost
Source avec Zip Source avec une capture CREATION DE COMPTE AVEC CRYPTAGE ET ESPACE DE CONNEXION SEC... par bm1982
Source avec Zip PROTÉGEZ VOS LIENS DE TÉLÉCHARGEMENT PAR MOT DE PASSE ET/OU ... par unlien
CRYPTAGE/DECRYPTAGE MCRYPT par sephirothgeek

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture FORM TO MAIL AVEC PROTECTION PAR TOKEN ET CAPTCHA CONTRÔLES ... par cod57
Source avec Zip Source avec une capture FORMULAIRE VERS COURRIEL BASIQUE AVEC CONTRÔLE CAPTCHA ANTI ... par cod57
Source avec Zip Source avec une capture GÉNÉRATION DE FORMULAIRES HTML PERSONNALISÉS. par beejeridou
Source avec Zip Source avec une capture CAPTCHA PHP SIMPLE par toutoos
Source avec Zip Source avec une capture ANTI-SPAM SIMPLE À INSERER MAIS NÉCESSITE BDD par azumi13

Commentaires et avis

Commentaire de TheSin le 14/01/2007 03:42:22

j'ai une petite question sur "imagesetpixel" : c'est pas couteux en performances ?

Commentaire de malalam le 14/01/2007 19:15:22 administrateur CS

Si, m'enfin, t'es pas censé générer 150 captcha à la suite...ni avoir beaucoup de traitement lourd et coûteux en php dans un formulaire.

Commentaire de TheSin le 14/01/2007 21:26:37

ouaip, je me demandais juste par rapport à la fonction en elle-même, pas au code en général. ;-)
Merci de ta réponse :-).
(je ne savais pas qu'on appellait ce genre de vagues du captcha, heureux d'avoir appris quelques chose :-))

Commentaire de malalam le 15/01/2007 09:56:25 administrateur CS

Non non, la captcha c'est juste le principe du code encapsulé dans une image.
Les vagues sont uniquement là pour rendre plus difficile la lecture du code par un robot, c'est tout.

Ce code est lourd, c'est clair : la partie "vagues" redessine toute l'image pixel par pixel...c'est forcément un gros traitement. Mais j'avoue ne pas avoir écrit cet algo, et être incapable de le réécrire : je suis bien trop mauvais en maths lol ;-)

Commentaire de TheSin le 15/01/2007 11:59:34

lolol, d'accord, merci pour la précision :-)
c'est dommage quand même de devoir passer par ce genre de techniques lourdes pour éviter le spam ... à quand les robots éteints ?
T'as ptetre pas écrit la vague, mais c'est tout de même un code super intéressant :-)

Commentaire de malalam le 15/01/2007 12:29:23 administrateur CS

Merci ;-)

Bah on aura de plus en plus de codes lourds à créer, parce que les fraudeurs créeront toujours des codes plus costauds aussi pour nous plomber... ;-) Malheureusement.

Commentaire de TheSin le 15/01/2007 13:07:39

ouaip, c'est toujours ce qui est bien chiant d'ailleurs dans le Web, on va bientôt passer par un serveur dédié pour le faire, ou a générer une liste d'antispam tous les jours en les mettant en cache pour alléger les serveurs ... :(

Commentaire de coucou747 le 15/01/2007 14:03:07 administrateur CS

il existe une fonction, je crois qui fait une matrice de convultion... ça serait plus pratique à utiliser, ça permettrait de faire vagues et ondes bien plus facilement...

Commentaire de malalam le 15/01/2007 14:09:30 administrateur CS

Elle n'est disponible que dans la version PHP 5.1 +, que je n'ai pas sur mon serveur de prod.
D'où cet algo.
Mais sinon oui : http://fr.php.net/manual/en/function.imageconvolution.php
Je vais ajouter un check sur son existence tien, et l'utiliser si elle existe, bonne idée.

Commentaire de malalam le 15/01/2007 14:35:21 administrateur CS

Ah ben non en fait ça fait un blur ou un "edge"...ça ne déforme pas réellement l'image, ou en tous cas je n'ai pas réussi (pas facile avec la doc actuelle...) à la déformer.

Commentaire de hvb le 15/01/2007 18:10:10

on est effectivement un peu plus loin que mon pauvre captcha perso, mais n'est-ce pas un peu TROP "wavy" justement? rien que sur la capture, j'arrive pas à lire le dernier caractère. Et c'est souvent ce dont se plaignent les users de base...

puis juste pour le fait, le captcha il me semble que ce n'est pas le "le principe du code encapsulé dans une image", mais n'importe quel processus demandant une invervention humaine...
à verifier :)

Commentaire de malalam le 15/01/2007 18:13:06 administrateur CS

On peut moduler le "wavy" en modifiant les paramètres de phases, périodes et amplitudes, si ça ne convient pas en l'état (réduire les delta, les baisser).

Et oui, pour ta seconde intervention, j'ai simplifié l'explication :-)

Commentaire de malalam le 15/01/2007 19:29:54 administrateur CS

Au passage, le dernier caractère de la capture est un 7.
Ca ne me parait pas difficile à lire moi, mais bon si t'es bigleux... ;-)...bon ok ok, et l'accessibilité, vous allez me dire ? Ce à quoi je vais répondre : tien, c'est vrai ça...comment adapter un captcha pour rendre le module "accessible" ?

Commentaire de audayls le 20/01/2007 17:49:07

Je ne sais pas si on peut rendre l'image "accessible" accessible mais peut-être faire un système qui "epele" le code (du moins si c'est possible).

Commentaire de punkcity le 23/01/2007 11:21:15

Salut Malalam,
Pour la question "comment adapter un captcha pour rendre le module "accessible" ?" je ne répondrai qu'avec : un module sonore permettant d'épeler les caractères afficher (comme indiqué par Audayls).
J'essaye de bosser sur un projet de création de fichier wav via php, mais faut comprendre comment fonction cette petite chose (se qui ne m'est pas le plus évident). Alors si des fois ca te venait à l'idée (ou à quelqu'un d'autre d'ailleurs), suis preneur (je n'ai trouvé qu'une source sur phpcs, qui ne me convenait pas malheureusement).

Sinon comme d'hab, toujours bien codé :-) (quoi que provenant de 3 auteurs différents)

Commentaire de JoJo738 le 25/01/2007 16:58:53

Hello Malalam et Punkcity

Pas mal la source :p

Euh, je viens de terminer une class Captcha avec création de fichier audio .wav en utilisant WavEdit. Je la finalise puis la posterais dans 1 ou 2 jours selon ma disponibilité. Si tu veux des infos sur comment ca marche, MP moi

Et j'ai justement utilisé la source disponible sur PHPCS ^^

Commentaire de bombseb le 16/02/2007 19:10:06

Il ne manquerait pas un session_start () au début du script par hasard ?

Commentaire de coucou747 le 26/12/2007 20:01:43 administrateur CS

j'ai commence a faire un programme qui lit ce captcha aussi
pour le moment, j'ai reussi a separer les lettres du reste, le cassage total n'est qu'une question de temps (5h max), si qqn ici utilise la source, faudrait qu'il le dise pour que je lui laisse le temps de changer de systeme avant que je ne publie mon code

Commentaire de coucou747 le 27/12/2007 01:42:28 administrateur CS

bon, j'ai des statistiques assez decevantes : sur 100 images, j'ai 10% de reussite seulement...

Comment expliquer les 90% d'echec ?
- certaines images se chevauchent
- les caracteres l et i sont facilement confondus, idem avec N, M et X, idem avec X et Y, idem avec 4 et A, idem avec C et G, idem avec E et F, etc...

Quels en sont les consequences ?
- avec mon processeur, je peux inscrire entre cinq et six personnes a l'heure sur un site protege avec ca...


c'est un captcha interessant mais pas assez securise a mon gout...

Commentaire de malalam le 28/12/2007 19:49:38 administrateur CS

J'aimerais bien voir ton code, Coucou, c'est forcément intéressant.
Aucun captcha n'est inviolable de toute manière.
Et un captcha seul ne sert pas des masses de toute manière, il faut avoir d'autres couches de protection, ce que j'ai tjrs sur les sites que je veux protéger efficacement (ouais, il y en a, on s'en fout nettement plus!). Un captcha est simplement la première couche de protection, et en ce sens, 10% de réussite de hack me conviennent bien, perso. Mais je pense qu'on peut faire mieux. Et je pense que tu feras mieux...
N'empêche, j'aimerais voir ton code! Ca m'intéresse vraiment.

Commentaire de coucou747 le 28/12/2007 20:02:13 administrateur CS

alors je vais mettre ma source a jours :)
je ne ferais pas mieux en php, j'ai abandonne il y a deux jours ma partie "je casse des captchas en php" pour me mettre a faire ca en java

Commentaire de Hultra le 05/02/2009 18:44:23

Salut moi ya rien qui fonctionne j'ai vraiment du mal à comprendre, ça fait au moins 15 captcha que je passe et qui fonctionne pas...

Commentaire de coucou747 le 05/02/2009 18:54:53 administrateur CS

salut

tu devrais probablement dire ce qui ne fonctionne pas, ca nous permettrait probablement de pouvoir t'aider.

dire simplement : "ca ne fonctionne pas" ne permet pas de resoudre un probleme.

Commentaire de malalam le 05/02/2009 19:31:31 administrateur CS

Exactement :-)

Coucou, si ça t'intéresse, j'ai créé un autre captcha, dont le code est bcp plus simple, et qui devrait être plus difficile à hacker (enfin, avec du temps, il l'est forcément hein, comme tous).

Commentaire de coucou747 le 05/02/2009 19:41:56 administrateur CS

ca m'interesse toujours, mais j'aurais probablement moins de temps pour jouer avec

Commentaire de Hultra le 05/02/2009 20:39:49

Oui désolé je n'ai pas été très explicite...^^

Mais c'est parce que j'étais énervé de ne pas trouver un seul code qui marche...
Enfin finalement après avoir cherché et trafiqué un peu dans le code j'en est trouvé un qui marche^^

Moi tout simplement ce qui ne marchais pas c'est qu'il n'y avait aucune image qui s'affichais, mais surtout cette belle erreur : "Fatal error: Call to undefined function imageantialias() in /www/megadl/test/captcha.php on line 54" :S

Donc voilà si vous avez une idée je prend toujours car ce captcha à l'air intéressant, mais sinon c'est pas grave :)

Et puis je veux bien voir l'autre dont tu parles aussi ;)

Commentaire de TheSin le 06/02/2009 08:55:15

C'est un problème du serveur php : "Cette fonction n'est disponible que si PHP est compilé avec la version embarquée de la bibliothèque GD"
réf: http://fr3.php.net/imageantialias

Commentaire de TheSin le 06/02/2009 08:59:43

Désolé pour le double, juste oublié de préciser que la raison peut aussi venir de la version de PHP (fonction disponible PHP 4 >= 4.3.2, PHP 5).
Autrement, dans ton cas, ce n'est certainement pas GD qui n'est pas installé :-).

(si un admin souhaite combiner les messages ça sera peut-être mieux, vraiment désolé pour ce double post, c'est le soir là pour moi '^^)

Commentaire de Hultra le 06/02/2009 18:28:24

Ok ^^

Donc si j'ai bie compris je ne peux pas utiliser ce script avec mon serveur actuel? :) ( ou j'ai rien compris du tout...lol)

Commentaire de malalam le 06/02/2009 18:57:22 administrateur CS

Hello,

non, GD est présent, sinon il aurait planté juste avant.
Commente simplement la ligne avec imageantialias().
Ce sera moins...aliasé...c'est tout :-)

Commentaire de deathsign le 12/06/2009 08:45:50 7/10

Salut,

Ce code est plutôt pas mal! ;D Fiable à 90% c'est pour moi un bon résultat. Mais comme tu le proposes sur ton commentaire du 05 février, serait-il possible de voir  ton autre captcha beaucoup plus simple et "sûr" ? Merci.

Commentaire de coucou747 le 12/06/2009 16:32:37 administrateur CS

90% ca veut dire (en gros) un post par minute et par machine.

pour passer a 100% de fiabilite, il suffirait de raprocher tes lettres, pour qu'on ne puisse plus les separer.

Commentaire de sardoine le 09/07/2011 13:32:24

hello malalam,
je suis debutant en web, et je désire utiliser un captcha pour la protection de form,
pouriez vous me faire une petite explication (dans mon box) du fonctionnement et de l'utlisation des codes captcha.
merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Souci formulaire contact php avec captcha [ par snip74 ] Bonjour, je fait appel a vous car je pète un câble lol. Voila j'ai trouvé un système de captcha je les mis sur mon formulaire de contact et rien ne formulaire php htlm / captcha [ par djbabou ] Bonjour, a tous J'ai développé un formulaire dans lequel j'ai intégrer un captcha image. Comme tous captcha normalement construit, après soumission d Authentification php [ par rems675 ] Bonsoir, J'ai un énorme problème et je comprend pas, ou plus du tout, j'ai tenté des millier de chose mais rien à faire. Cela concerne une authentific problème Formulaire(select)?? [ par minoula2006 ] Bonjour, J'aimerai bien que vous m'aider à résoudre mon problème, je programme en PHP un formulaire ou je doit ajouter une actualité qui utilise un t formulaire dynamique php ,sqlserver [ par hantouva ] bonjour; voila je fais un site web dynamique en php et jutilise une base de donnees sql server je bloque au niveau du formulaire de recherche qui do Perte de session avec ie ??? [ par gfpl ] Bon voila le souci je peut le tourner comme je veut mais je ne trouve pas la solution .... j'essaie en vain mais non... la session marche avec chrome Garder les valeurs de mes tableaux quand je rafaraichit ma page [ par Varkan ] Bonjour à tous ! Je fais actuellement mon Memory, avec différentes tableaux en php qui contiennent des numéros aléatoires et avec cela je met mes ima Architecture d'un formulaire client + divers fonctions (email, macros....). [ par quinton75 ] Bonjour, J'ai créée un formulaire pour demander aux clients smart box de renseigner leurs infos persos ....En bas de page, le code..... Et j'aimera Formulaire et variable vide [ par WrestlingMan ] Bonjour à tous, je vais essayer d'être clair. J'ai mis un site en ligne il y a à peu près 2 à 3 mois, après avoir fait tout les tests nécessaire bien envoyer le contenu du formulaire vers un mail [ par hamzvb ] bonjour; je suis en train de créer un site web et j'ai un formulaire de contact que je veux que son contenu sera envoyé à mon adresse mail au fur et a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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 : 0,546 sec (3)

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