Sondage du mois

Sondage du mois
 

  La connaissance ne vaut que si elle est partagée par tous




 
  Astuce Adobe Photoshop : Raccourci Quitter : Ctrl Q




Infos de Igixcs

Voir sa Fiche Membre

  • Blog conçu le : 27 Juin 2008
  • Nombre d'articles : 9
  • Nombre de pages vues : 10146
  • Adresse Email :

Les articles du blog

Blog de Igixcs
IgiX le POURIS
Blog de Igixcs - [php]code verif
le 12/04/2008 à 21h33 - 13 commentaires   

[php]code verif

0/5 (1 votes)

Salut tout le monde, bah voilà le code Captcha (je sais pas comment on dit :p) que je me suis concocté!
Pour la page de traitement du formulaire, il vous suffit de tester la session...

Tout est commenté au maximum :)

CODE PHP


<?php
// On veut afficher une image type png
header ("content-type: image/png");
/*
------> 1ere etape : Taille de l'image + fond
*/
// dimension de l'image : 175*50
$largeur = 80;
$hauteur = 40;
$image = imagecreate($largeur, $hauteur);

//Fond de l'image : blanc
imagecolorallocate($image, 255, 255, 255);

/*
------> 2e etape : Affichage des points
*/

//on choisi le nombre de points min, max
$nb_points = mt_rand(100, 150);

//Point numéro 0
$num_point = 0;

//boucle pour afficher tout les point en fonction du nombre de points aleatoires
while($num_point <= $nb_points)
{
//On incrémente la valeur du point (son numero)
$num_point ++;
// on lui defini une valeur aleatoire en x
$x = mt_rand(0, $largeur);
// on lui defini une valeur aleatoire en y
$y = mt_rand(0, $hauteur);

// definition d'un couleur aleatoire
$couleur_aleatoire = imagecolorallocate($image, mt_rand(0, 165), mt_rand(0, 165), mt_rand(0, 165));


// on affiche le point
ImageSetPixel ($image, $x, $y, $couleur_aleatoire);
}
/*
------> 3e etape : Affichage des traits
*/
//nombres de traits max
$nb_max_lignes = mt_rand(10, 30);
$ligne_numero = 0;
while($ligne_numero <= $nb_max_lignes)
{
// incremention nombre de lignes
$ligne_numero ++;

// valeurs aleatoire de x et y
$x1 = mt_rand(0, $largeur);
$y1 = mt_rand(0, $hauteur);
$x2 = mt_rand(0, $largeur);
$y2 = mt_rand(0, $hauteur);

//couleur aleatoire
$couleur_aleatoire = imagecolorallocate($image, mt_rand(0, 255), mt_rand(0, 255), mt_rand(0, 255));

//affichage de la ligne
ImageLine ($image, $x1, $y1, $x2, $y2, $couleur_aleatoire);
}
/*
------> 4e etape : Affichage du texte
*/

//on cree un array ou on stock les lette pour le code de securite (61 + 1 cases)
$caractere = array("a", "z", "e", "r", "t", "y", "u", "i", "o", "p", "q", "d", "f", "g", "h", "j", "k", "l", "m",
"w", "x", "c", "v", "b", "n", "1", "2", "3", "4", "5", "5", "6", "7", "8", "9", "0","A", "Z", "E", "R", "T", "Y",
"U", "I", "O", "P", "Q", "S", "D", "F", "G", "H", "J", "K", "L", "M", "W", "C", "V", "B", "N", "X", );

//definition aleatoire nombre de caracteres
$nb_caracteres_max = mt_rand(3, 6);

//lettre numero 1
$lettre = $caractere[mt_rand(0, 61)];
$caractere_num = 1;

//Creation de la boucle pour afficher les autres caracteres
while($caractere_num <= $nb_caracteres_max)
{
$caractere_num ++;
$lettre .= $caractere[mt_rand(0, 61)];
}

// On cree une couleur aleatoire pour tout le texte
$couleur_aleatoire1 = imagecolorallocate($image, 0,0,0);
// Affichage du code
imagestring($image, 5, 10, 10, $lettre, $couleur_aleatoire1);

/*
------> 5e etape : Affichage de l'image + SESSION
*/
// ouverture de la session
session_start();
// $_SESSION['code'] vaut le code aleatoire
$_SESSION['code'] = $lettre;

//affichage de l'image
imagepng($image);
?>



Clique ici pour afficher le message caché
CODE PHP


<?php
header ("content-type: image/png");

$largeur = 80;
$hauteur = 40;
$image = imagecreate($largeur, $hauteur);

imagecolorallocate($image, 255, 255, 255);

$nb_points = mt_rand(100, 150);
$num_point = 0;
while($num_point <= $nb_points)
{
$num_point ++;
$x = mt_rand(0, $largeur);
$y = mt_rand(0, $hauteur);
$couleur_aleatoire = imagecolorallocate($image, mt_rand(0, 255), 0, mt_rand(0, 255));
ImageSetPixel ($image, $x, $y, $couleur_aleatoire);
}

$nb_max_lignes = mt_rand(5, 14);
$ligne_numero = 0;
while($ligne_numero <= $nb_max_lignes)
{
$ligne_numero ++;
$x1 = mt_rand(0, $largeur);
$y1 = mt_rand(0, $hauteur);
$x2 = mt_rand(0, $largeur);
$y2 = mt_rand(0, $hauteur);
$couleur_aleatoire = imagecolorallocate($image, mt_rand(0, 200), mt_rand(0, 12), mt_rand(0, 200));
ImageLine ($image, $x1, $y1, $x2, $y2, $couleur_aleatoire);
}

$caractere = array("a", "z", "e", "r", "t", "y", "u", "i", "o", "p", "q", "d", "f", "g", "h", "j", "k", "l", "m", "w", "x", "c", "v", "b", "n", "1", "2", "3", "4", "5", "5", "6", "7", "8", "9", "0","A", "Z", "E", "R", "T", "Y", "U", "I", "O", "P", "Q", "S", "D", "F", "G", "H", "J", "K", "L", "M", "W", "C", "V", "B", "N", "X", );
$nb_caracteres_max = mt_rand(3, 6);
$lettre = $caractere[mt_rand(0, 61)];
$caractere_num = 1;
while($caractere_num <= $nb_caracteres_max)
{
$caractere_num ++;
$lettre .= $caractere[mt_rand(0, 61)];
}
$couleur_aleatoire1 = imagecolorallocate($image, 0,0,0);
imagestring($image, 5, 10, 10, $lettre, $couleur_aleatoire1);

session_start();
$_SESSION['code'] = $lettre;

imagepng($image);
?>

voilà j'ai refais le code mais sans commentaires, moins compréhensible mais plus lisible :p



Partager sur Twitter

Commentaires

Percoman, le 12/04/2008 à 23h49
  C'est dommage car parfois les caractères sont très peu visible. Mais sinon c'est pas mal



Igixcs, le 13/04/2008 à 00h39
  merci, surtout, que c'est une premiere que je fait avec les image en php :p après je look for ajax pour la rafraichir si on lit mal :)



SaTurN1, le 13/04/2008 à 00h44
 
Citation

Mais sinon c'est pas mal

On sait que tu dis sa pour l'encourager percoman car on sait tous que tu es un ouf du slip du codage php orienté objet^^



Igixcs, le 13/04/2008 à 08h31
  ouai, mais dans 20ans j'aurais le meme niveau que lui :p



Percoman, le 13/04/2008 à 15h22
  20 ans ? OMG, ta le temps ... MDR



Igixcs, le 13/04/2008 à 15h39
  mais ouai, je sais, je m'attaque déjà au php car j'vais faire un site et le design est TROP inspiré de la version du site des w1 les memes block en ajax xD



SaTurN1, le 13/04/2008 à 18h13
  Moi dans 20 ans je piraterai google niark niark



Percoman, le 13/04/2008 à 19h23
  tu sera donc en prison :)



SaTurN1, le 13/04/2008 à 19h34
  ...Nuance
Tu vois moi je suis pas un simple petit codeur ...
je veux pas utiliser des brutforces c'est pour les noobie..
Tkt que google je vais pas le pirater dès que je trouve une faille (ok j'en trouverai jamais)
je vais prendre toute les précautions pour qu'on ne puisse pas retracer mon ip
Héhé ;;)
Oé je me la pète un max!



Igixcs, le 13/04/2008 à 19h53
  Le 12 Saturn1 tu sors



Percoman, le 13/04/2008 à 20h46
  Il y en a des failles chez google, il y en a des simpa puisque tu peux hack avec google :)



Kwhc_, le 27/04/2008 à 19h04
  C'est Captcha qu'on écrit je crois emotion



Igixcs, le 28/04/2008 à 07h33
  Merci emotion



Vous devez être membre pour poster des commentaires sur le site.

DERNIÈRES PUBLICATIONS DE OPEN-MOUTHED

En direct de open-mouthed.com