begin process at 2012 02 11 01:28:43
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Graphique

 > GÉNÉRER UNE IMAGE AVEC TEXTE ALÉATOIRE

GÉNÉRER UNE IMAGE AVEC TEXTE ALÉATOIRE


 Information sur la source

Note :
1 / 10 - par 2 personnes
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Graphique Niveau :Débutant Date de création :09/12/2004 Date de mise à jour :09/12/2004 02:40:49 Vu :8 955

Auteur : michel_roger

Ecrire un message privé
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note

 Description

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

  • 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">
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">



 Historique

09 décembre 2004 02:40:49 :

 Sources de la même categorie

Source avec Zip Source avec une capture CAMEMBERT BD par dardelphi
Source avec une capture AMÉLIORATION : CAMEMBERT par asphator
GESTION DE COULEUR par manuche
Source avec Zip NAVIGATOR (+CSSDETECTOR) par xXVoxPopuliXx
COMMENT, AVEC GD, DESSINER UN RECTANGLE TRANSPARENT PLEIN AV... par Rainbow

Commentaires et avis

Commentaire de Anthomicro le 09/12/2004 18:30:20

Salut,

<? est à remplacer par <?php

Ensuite ton code n'est pas complet, de plus tes problèmes sont à signaler sur le forum...

Bref un code pas très utile...

a +

Commentaire de coucou747 le 09/12/2004 18:43:14 administrateur CS

C'est un peu risqué pour éviter le flood... C'est a dire que tu peux parfaitement avoir un jour un root a inteligence artificielle de reconaissance d'iamge... C'est pas vraiment compliqué a faire quand on veut faire chier le monde.. Suffit de prendre ta police...

C'est pour cette raison que c'est écrit dans tout les sens sur les antis floods que l'on voit sur le net un peu partout...

Tu peux mettre l'ordonée en valeur variable... Ce serais déja un peu plus efficace... Sinon choisir un fond aléatoire... et mettre une ligne ou deux en blanc par dessus au hasard toujours...

Commentaire de michel_roger le 10/12/2004 02:03:13

merci pour les infos.
anthomicro, pourquoi remplacer les <? par <? php ? Qu'y gagne-t-on ? portabilité, rapidité, sécurité ??
Peux-tu donc compléter mon code incomplet ??? merci
Pour l'ordonnée aléatoire, c fait. Pour le background, j'arrive meme pas a mettre la couleur que je veux...
Pour les bots a reconnaissance d'image, j'en av entendu parler, mais je prétend pas stopper tout le flood du monde, juste faire un petit truc pour niveau 'Débutant' ...
Bonne nuit

Commentaire de michel_roger le 10/12/2004 02:12:35

ben j'aurai au moins tilté sur flood, ca m'a permis de trouver un script beaucoup plus complet...

<a href="http://www.phpcs.com/code.aspx?ID=21585">ANTI-FLOOD PAR UN CODE IMAGE</a>

Commentaire de sapar le 09/04/2006 14:20:57

J'ai essayé ton code, mais c'est vrai qu'on arrive pas à gerer l'arrière plan !
Moi je voulais mettre un texte noir sur fond blanc, je l'ai donc un peu modifier, très très rapidement, et ca marche, le nouveau code est :

<?
header("Content-type: image/png");
$token = substr(md5(uniqid(rand())),0,8);
$im = ImageCreate (80, 30) or die ("Erreur lors de la création de l'image");    

$background_color = imagecolorallocate($im, 255, 255, 255);
$text_color = imagecolorallocate($im, 0, 0, 0);
imagestring($im, 5, 5, 5, $token, $text_color);

imagepng($im);
imagedestroy($im);
?>

Commentaire de Anthomicro le 09/04/2006 14:22:41

Salut,

j'en ai fait un si tu veux, regarde la liste de mes sources "protéger un formulaire"...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,640 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales