*   >> Lecture Éducation Articles >> tech >> développement web

Captcha - La façon la plus simple de faire it

Un grand problème aujourd'hui est un spam. La meilleure façon de lutter contre le spam est Captcha. Captcha fait la différence entre un ordinateur et un être humain. Ordinateurs ne peuvent pas lire le texte dans une image, ce qui est la raison pour laquelle nous allons utiliser une photo aussi.

Commençons par créer le fichier captcha.php. Ce fichier va créer une photo avec un texte écrit sur elle

header ("Content-Type: image /jpeg);.

//Une image JPEG sera délivré $ width = 60; //Largeur de l'image $ height = 24; //Taille de l'image $ mon_image = imagecreatetruecolor (largeur de $, hauteur); //Créer l'image TrueColor imagefill (mon_image $, 0, 0, 0xFFFFFF); //Fond blanc

Jusqu'à présent, nous avons réussi à créer une image qui a un fond blanc, de 60 pixels de large et 24 pixels de haut.

Ajoutons quelques distorsions:

for ($ c = 0; $ c $ x = rand (0, $ width-1); $ y = rand (0, $ height-1); imagesetpixel ($ mon_image , $ x, $ y, 0x000000);}

Nous inséré 40 pixels noirs dans l'image Ces pixels auront différentes coordonates chaque fois une image est chargé

Écrivons le texte.. la photo:..


$ x = rand (1,10); //X coordonate du coin supérieur gauche $ y = rand (1,10); //Y coordonate du coin supérieur gauche $ rand_string = rand (10000,99999); //Obtenir un nombre compris entre 10000 et 99999 imagestring (mon_image $, 5, $ x, $ y, $ rand_string, 0x000000); //Ecrire le nombre obtenu plus tôt sur la photo

Sauvons la chaîne écrite sur l'image dans un cookie. Nous allons lire ce cookie fois un formulaire est soumis à comparer les données.


setcookie («cookie-captcha", (md5 ($ rand_string)) , le temps () + 3600, "/"); imagejpeg (mon_image $); //Création de la imagedestroy d'image jpeg (mon_image $); //Supprimer l'image jpeg

Dans cet exemple, le nom du cookie est biscuits -captcha, son contenu sera le md5 valeur codée de la chaîne aléatoire obtenu plus tôt (le nombre écrit dans l'image), il sera valable pour une heure sur l'ensemble de votre domaine.

L'image est supprimée (imagedestroy ) pour économiser de l'espace sur le serveur

Le dossier complet de captcha.

php sera:

header ("Content-Type: image /jpeg. '); $ width = 60; $ height = 24; $ mon_image = imagecreatetruecolor ($ width, $ height); imagefill ($ mon_image, 0, 0, 0xFFFFFF); for ($ c = 0; $ c $ x = rand (0, $ width-1); $ y = rand (0, $ height-1); imagesetpixel (mon_image $, $ x, $ y, 0x000000);} $ x = rand (1,10); $ y = rand (1,10); $ rand_string = rand (10000,99999); imagestring (mon_image $, 5, $ x, $ y, $ rand_string, 0x000000); setcookie («cookie-captcha", (md5 ($ rand_string)), le temps () + 3600, "/"); imagejpeg (mon_image $); imagedestroy (mon_image $);?>

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.