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

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 {

 //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.