.01
.02
.03
.04
.05
.06
.07
.08
.09
.10
.11
.12
.13
.14
.15
.16
.17
.18
.19
.20
.21
.22
.23
.24
.25
.26
.27
.28
.29
.30
.31
.32
.33
.34
.35
.36
.37
.38
.39
.40
.41
.42
.43
.44
.45
.46
.47
.48
.49
.50
.51
.52
.53
.54
.55
.56
.57
.58
.59
.60
.61
.62
.63
.64
.65
.66
.67
.68
.69
.70
.71
.72
.73
.74
.75
.76
.77
.78
.79
.80
.81
.82
.83
.84
.85
.86
.87
.88
.89
.90
|
|
<?php
/******************************************************************************/
/* */
/* __ ____ */
/* ___ / / ___ / __/__ __ _____________ ___ */
/* / _ \/ _ \/ _ \_\ \/ _ \/ // / __/ __/ -_|_-< */
/* / .__/_//_/ .__/___/\___/\_,_/_/ \__/\__/___/ */
/* /_/ /_/ */
/* */
/* */
/******************************************************************************/
/* */
/* Titre : Captcha anti-spam simple et avec image */
/* */
/* URL : http://www.phpsources.org/scripts423-PHP.htm */
/* Auteur : Mhdi */
/* Date édition : 02 Juil 2008 */
/* */
/******************************************************************************/
session_start(); //Démarrer les sessions
//on crée une image vierge de dimensions 200*50
$image = imagecreate(200,50);
//Les polices disponibles
$font1 = 'polices/1.ttf';
$font2 = 'polices/2.ttf';
// La taille de la police
$fontsize = 23;
//Les couleurs
$blanc = imagecolorallocate($image, 250, 250, 250);//Couleur blanche
$gris = imagecolorallocate($image, 128, 128, 128);//couleur grise
$noir = imagecolorallocate($image, 79, 79, 79);//Couleur noire
//Les coordonnées
$z=35;
$y=35;
//Les caractères pouvant être inscrits dans l'image
$txt=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",
"1", "2", "3", "4", "5", "6", "7", "8", "9");
//Boucle qui permet d'afficher 5 caractères
for($x = 0; $x < 5; $x++)
{
//Couleur au hasard
$couleur = (mt_rand(0,1)==0) ? $noir : $gris;
//police au hasard
$font = (mt_rand(0,1)==0) ? $font1 : $font2;
//Caractère au hasard
$v=mt_rand(0,34);
//Le tout dans l'image
imagettftext($image,$fontsize, mt_rand(0,25), $z, $y, $couleur, $font, $txt[$v]);
//Le code
$code.=$txt[$v];
//Espace entre les caractères
$z+=28;
}
//On affiche des lignes
for($i = 0; $i < 85; $i++)
{
//Couleur des lignes
$choix=mt_rand(0,1);
$couleur = (mt_rand(0,1)==0) ? $noir : $gris;
//Les lignes!
ImageLine($image,mt_rand(0,200),mt_rand(0,200),mt_rand(0,200),mt_rand(0,200),$couleur);
}
//La session qui contient le code
$_SESSION['code'] = $code;
//Le type de la page
header ("Content-type: image/png");
header('Cache-Control: no-store, no-cache, must-revalidate');
imagepng($image);
//On économise les ressources
imageDestroy($image);
?>
|