|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CAPTCHA ( ANTI-SPAM, ANTI-ROBOT )
Information sur la source
Description
Génération d'une image pour anti-robot/anti-spam A chaque chargement de la page, voici ce qui change : 1/ La couleur de fond 2/ La chaîne de caractère 3/ La couleur de chaque caractère ( plus foncé que la couleur de fond dans tous les cas ) 4/ La police de chaque caractère 5/ L'angle de chaque caractère 6/ La taille de chaque caractère 7/ La position vertical de chaque caractère Aucun caractère sort de l'image. De temps en temps il y a des chiffres qui se chevauchent suivant l'angle, le chiffre, sa taille et sa position, mais ça reste dans 99% des cas, lisible. ( pour ma part )
Source
- <?php
- session_start();
-
- srand(); //initialisation du générateur mais plus obligatoire > PHP 4.2
-
- // Définition du content-type
- header("Content-type: image/png");
-
- $lettres = 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');
-
- $code = $lettres[rand(0,25)].rand(100,1000000);
- $longueurcode = strlen($code);
-
- $_SESSION['code'] = $code; //pour pouvoir tester si le code saisie est bien égal à celui saisie ;)
-
- $largeur = $longueurcode * 25;
- $hauteur = 40;
-
- $image = imagecreatetruecolor($largeur, $hauteur);
-
- $couleurfond = imagecolorallocate($image, rand(150,255),rand(150,255),rand(150,255));
-
- imagefilledrectangle($image, 0, 0, $largeur, $hauteur, $couleurfond);
-
- $fontchiffre = array('1.ttf','2.ttf');
- $fontlettre = array('3.ttf');
-
- imagettftext($image, rand(15,30), rand(-45,15), 10, 35, imagecolorallocate($image, rand(10,100) ,rand(10,100),rand(10,100)), $fontlettre[0], $code[0]);
-
- for ($i = 1; $i < $longueurcode; $i++)
- {
- $largeurx = 20 * $i + 30;
- $hauteury = rand(25,40);
- imagettftext($image, rand(27,32), rand(0,45), $largeurx,$hauteury, imagecolorallocate($image, rand(10,100) ,rand(10,100),rand(10,100)), $fontchiffre[rand(0,1)], $code[$i]);
- }
-
- imagepng($image); //génère l'image
- imagedestroy($image); //détruit l'image
-
- ?>
<?php
session_start();
srand(); //initialisation du générateur mais plus obligatoire > PHP 4.2
// Définition du content-type
header("Content-type: image/png");
$lettres = 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');
$code = $lettres[rand(0,25)].rand(100,1000000);
$longueurcode = strlen($code);
$_SESSION['code'] = $code; //pour pouvoir tester si le code saisie est bien égal à celui saisie ;)
$largeur = $longueurcode * 25;
$hauteur = 40;
$image = imagecreatetruecolor($largeur, $hauteur);
$couleurfond = imagecolorallocate($image, rand(150,255),rand(150,255),rand(150,255));
imagefilledrectangle($image, 0, 0, $largeur, $hauteur, $couleurfond);
$fontchiffre = array('1.ttf','2.ttf');
$fontlettre = array('3.ttf');
imagettftext($image, rand(15,30), rand(-45,15), 10, 35, imagecolorallocate($image, rand(10,100) ,rand(10,100),rand(10,100)), $fontlettre[0], $code[0]);
for ($i = 1; $i < $longueurcode; $i++)
{
$largeurx = 20 * $i + 30;
$hauteury = rand(25,40);
imagettftext($image, rand(27,32), rand(0,45), $largeurx,$hauteury, imagecolorallocate($image, rand(10,100) ,rand(10,100),rand(10,100)), $fontchiffre[rand(0,1)], $code[$i]);
}
imagepng($image); //génère l'image
imagedestroy($image); //détruit l'image
?>
Conclusion
Un petit truc avec la police 3.ttf, elle s'affiche en majuscule, alors que la lettre est en minuscule, mais bon ça, c'est le créateur de la police qui a voulu tout mettre en majuscule, la seule différence, c'est que la lettre est inversé pour les majuscules.. >< Pour ma part, vu que j'ai mis que des minuscules, lors du test, j'utilise la fonction php strtolower() pour le code saisie. Voilà voilà, si quelqu'un arrive a bousillé mon captcha, si c'était possible qu'il me le fasse savoir pour que je puisse l'améliorer. C'est ma première source que je poste ici, en espérant qu'elle puisse aider des personnes. Si vous avez des questions, ou des critiques, n'hésitez pas.
Historique
- 25 avril 2007 09:55:09 :
- Modification dans la présentation du code.
- 25 avril 2007 17:59:59 :
- Ajout du zip ><
- 25 avril 2007 18:02:02 :
- Ajout du zip ><
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Sécurité [ par thebigbang ]
Bonjout,Je suis webmaster et je voudrais sécurisé, enfin c'est une facon de parler, un peu plus mon site ...il conmporte un dossier "admin" et lorsque
quand on parle sécurité [ par Tomcube ]
Oui, nous ne vivons pas dans un monde sans criminels !! ^^ (me prenez pas pour un débile lol) Et sur internet les criminels c les hackers. Donc pour l
Sécurité-fichiers-dossiers [ par stageSAP ]
Bonjour,Pour mon site, je protège l'accès aux pages grâce aux variables de sessions et cela marche très bien. Je travaille en local pour l'instant. Su
Sécurité pour un script de commentaires !!! et droits d'auteur?? [ par perig ]
BonjourJe suis désolé, je n'ai pas fini de vous embêter avec mes questions !!!! Voilà la question du jour :J'ai crée un script qui pe
avertissement de sécurité [ par mojira ]
comment fait on pour provoquer une boite de dialogue nommée avertissement de sécurité?celle ci se produit quand un site propose d'installer et d' exé
Sécurité de travail [ par Trigun222 ]
Salut,Je me suis trouvé une passion, c'est l'infographie et l'informatique en général, j'aimerais bien m'y engager et avoir un métier là dedans, mais
Question sécurité [ par zzzzzz ]
Salut j'ai un formulaire et une zone de texte.J'aimerai savoir si il est necessaire de filtré les touches. voir si il y a pas de < par exemple ? j
Question de sécurité [ par zzzzzz ]
Salutj'ai pas mal de page en php. Je me demandais quels sont les risques rééls sur les url. genre on rajoute un code apres l'url ? on pourrai ainsi in
Sécurité & Cryptage des sources [ par GregPeck ]
Bonjour,Je viens de créer à ma boite un logiciel de gestion de planning en php mysql sur un serveur linux. Les gens peuvent créer leur planning sur no
$_SERVER['SERVER_NAME'] sécurité ? [ par inconnuanonyme ]
SalutJe touche un peu au php et voici ma question :supposons que je possède un site chez free :http://site.free.frsur lequel se trouve l'index index.p
|
Téléchargements
Logiciels à télécharger sur le même thème :
|