Rechercher dans les publications Rechercher:

Imprimer cet article

Générer des images aléatoires contenant du texte.

script PHP

Générer des images aléatoires contenant du texte.

25 octobre 2003, par Scarabeuz

Le principe est simple, d’un côté une fonction qui génère un nombre, et de l’autre un script qui récupère ce nombre et crée une image grâce à la librairie GD de php.

Aller hop c’est parti...

On commence par créer la fonction cle() ; dans le fichier index.php



function cle() {

//nombre de chiffres total
$taille = 5;

//chaîne utilisée, on peut rajouter des lettres
$chiffre = "123456789";
srand(time());

for ($i=0;$i<$taille;$i++)
{

//on mélange le tout
$key.=substr($chiffre,(rand()%(strlen($chiffre))),1);
}

return($key);
}

Ensuite une fois que l’on a récuperé le numéro on peut créer une image. Ce script doit être inséré dans une page à part ( ex : gencode.php )



header ("Content-type: image/jpeg");

// Ici on choisit la hauteur par ex 80*20
$im = imagecreate (80,20) or die ("Problème de création GD");

// Choix des couleurs ici ça donne du Gris
$background_color = imagecolorallocate ($im, 238, 238, 238);

// Choix de la couleur de la police, ici Noir
$ecriture_color = imagecolorallocate ($im, 0, 0, 0);

//on récupère le texte généré du formulaire
imagestring ($im, 10, 18, 6, $_GET['code'] , $ecriture_color);
imagejpeg($im);

Maintenant on applique la formule magique.

Toujours dans le fichier index.php sous la fonction cle(), on ajoute un formulaire :



$code = cle();

<form name="form" method="post" action="verification.php">
<input name="verifCode" type="text" class="input0" id="verifCode" maxlength="5">
<input type="hidden" name="verifCode2" value=<? echo $code; ?>>
<input type="hidden" name="action" value="submit">
<IMG src="gencode.php?code=<? echo $code; ?>">
</form>

$code = cle() va créer à chaque chargement de la page un "Nombre" qui sera stocké dans la variable $code.

En même temps, ce code sera envoyé vers notre fichier gencode.php pour créer une image et l’insérer par la même occasion.

Ensuite dans notre fichier verification.php on contrôle les résultats :



if (($action == "submit") && ($_POST['verifCode'] == $_POST['verifCode2']))  
{ echo "Le code est bon"; } else "Veuillez retourner sur le formulaire et entrer le bon Code !";  

Et voilà vous allez pouvoir limiter les soumissions dans votre annuaire.

Des suggestions, des remarques, des questions ? Venez en discuter sur le forum PHP.