forked from miraty/web
78 lines
1.5 KiB
PHP
78 lines
1.5 KiB
PHP
<?php // Selon https://openclassrooms.com/courses/faire-une-image-anti-robots-ou-captcha-facilement
|
|
|
|
// On crée la session avant tout
|
|
|
|
session_start();
|
|
|
|
|
|
// On définit la configuration :
|
|
|
|
$nbr_chiffres = 6; // Nombre de chiffres qui formeront le nombre
|
|
|
|
|
|
// Là, on définit le header de la page pour la transformer en image
|
|
|
|
header ("Content-type: image/png");
|
|
|
|
// Là, on crée notre image
|
|
|
|
$_img = imagecreatefrompng('fond_verif_img.png');
|
|
|
|
|
|
// On définit maintenant les couleurs
|
|
|
|
// Couleur de fond :
|
|
|
|
$arriere_plan = imagecolorallocate($_img, 0, 0, 0); // Au cas où on n'utiliserait pas d'image de fond, on utilise cette couleur-là.
|
|
|
|
// Autres couleurs :
|
|
|
|
$avant_plan = imagecolorallocate($_img, 255, 255, 255); // Couleur des chiffres
|
|
|
|
|
|
##### Ici on crée la variable qui contiendra le nombre aléatoire #####
|
|
|
|
$i = 0;
|
|
|
|
while($i < $nbr_chiffres) {
|
|
|
|
$chiffre = mt_rand(0, 9); // On génère le nombre aléatoire
|
|
|
|
$chiffres[$i] = $chiffre;
|
|
|
|
$i++;
|
|
|
|
}
|
|
|
|
$nombre = null;
|
|
|
|
// On explore le tableau $chiffres afin d'y afficher toutes les entrées qui s'y trouvent
|
|
|
|
foreach ($chiffres as $caractere) {
|
|
|
|
$nombre .= $caractere;
|
|
|
|
}
|
|
|
|
##### On a fini de créer le nombre aléatoire, on le rentre maintenant dans une variable de session #####
|
|
|
|
$_SESSION['solutionCaptcha'] = $nombre;
|
|
|
|
// On détruit les variables inutiles :
|
|
|
|
unset($chiffre);
|
|
|
|
unset($i);
|
|
|
|
unset($caractere);
|
|
|
|
unset($chiffres);
|
|
|
|
|
|
imagestring($_img, 5, 18, 8, $nombre, $avant_plan);
|
|
|
|
|
|
imagepng($_img);
|
|
|
|
?>
|