Générer une image avec texte aléatoire

Contenu du snippet

Je crée en ce moment un formulaire d'inscription et je veux m'assurer qu'une personne humaine le remplit. Je fais donc commen g vu sur certains formulaires, je crée une image avec un texte généré par php.
C vraiment du microcode, mais je chercahis depuis un moment un peu partout et je trouvais pas chaussure a mon pied...

Source / Exemple :


Si la librairie n'est pas activée dans votre distro php : Dans mon cas, g décommenté la ligne extension:php_gd2.dll.
Si elle est pas installée avec, c un peu plus complexe (cf manuel php ;-))

Le script c celui la, par exemple 'build_image.php':
<?
/* On peut mettre image/jpg, image/gif, selon vos besoins */
header("Content-type: image/png");
/*
 La aussi, g pas fait dans la subtilité, 
 une longue chaine de 32 caractères tranchée aux 8 premiers... a vous de voir

  • /
$token = substr(md5(uniqid(rand())),0,8); /* Ici c le code qu'on trouve dans le manuel php hein... */ $im = @imagecreatetruecolor(100, 25) or die ("Impossible d'initialiser la librairie GD"); /* Tè la g un petit problème, je n'arrive pas à attribuer cette couleur au fond de l'image En effet, dans le manuel, on crée une variable $background_color qu'on n'utilise pas
  • /
$background_color = imagecolorallocate($im, 255, 255, 240); /* La ca marche, mais on s'en sert effectivement dans la fonction imagestring */ $text_color = imagecolorallocate($im, 255, 255, 255); imagestring($im, 5, 5, 5, $token, $text_color); /* Selon le header envoyé, on utilise imagepng, imagejpeg ou imagegif (attention toutefois a la version de votre php cf manuel php)
  • /
imagepng($im); imagedestroy($im); ?> Et dans le fichier ou se trouve le formulaire, on crée la balise img: <img src="build_image.php">

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (michel_roger)