Génération image crypto

Génération image crypto - PHP - Programmation

Marsh Posté le 18-01-2008 à 22:21:41    

Bonjour,
 
J'ai un petit soucis avec un script qui permet d'insérer un cryptographe. Voila l'erreur qui apparait à la place de l'image :

Warning: imagettftext() [function.imagettftext]: Could not find/open font in /mnt/140/sda/0/2/www.blogue/_blogadata/picto/cryptographp.inc.php on line 83


Je suis plus que très loin d'être un pro en PHP et voila le code qui pose le problème : (la ligne 83 correspond à la ligne 28)
 

Code :
  1. // Création du cryptogramme temporaire
  2. $imgtmp = imagecreatetruecolor($cryptwidth,$cryptheight);
  3. $blank  = imagecolorallocate($imgtmp,255,255,255);
  4. $black   = imagecolorallocate($imgtmp,0,0,0);
  5. imagefill($imgtmp,0,0,$blank);
  6. $word ='';
  7. $x = 10;
  8. $pair = rand(0,1);
  9. $charnb = rand($charnbmin,$charnbmax);
  10. for ($i=1;$i<= $charnb;$i++) {             
  11.      $tword[$i]['font'] =  $tfont[array_rand($tfont,1)];
  12.      $tword[$i]['angle'] = (rand(1,2)==1)?rand(0,$charanglemax):rand(360-$charanglemax,360);
  13.    
  14.      if ($crypteasy) $tword[$i]['element'] =(!$pair)?$charelc{rand(0,strlen($charelc)-1)}:$charelv{rand(0,strlen($charelv)-1)};
  15.         else $tword[$i]['element'] = $charel{rand(0,strlen($charel)-1)};
  16.      $pair=!$pair;
  17.      $tword[$i]['size'] = rand($charsizemin,$charsizemax);
  18.      $tword[$i]['y'] = ($charup?($cryptheight/2)+rand(0,($cryptheight/5)):($cryptheight/1.5));
  19.      $word .=$tword[$i]['element'];
  20.    
  21.      $GDFONTPATH_Save = getenv('GDFONTPATH');
  22.      putenv('GDFONTPATH='.realpath('./fonts'));
  23.      $lafont=$tword[$i]['font'];
  24.      if (strpos(strtoupper($lafont), ".TTF" ) == strlen($lafont)-4) $lafont = substr ($lafont,0,strlen($lafont)-4);
  25.      imagettftext($imgtmp,$tword[$i]['size'],$tword[$i]['angle'],$x,$tword[$i]['y'],$black,$lafont,$tword[$i]['element']);
  26.      $x +=$charspace;
  27.      }


Normalement si j'ai bien compris, ce code génère une série de lettres aux hasard et les écrit dans une petite image.
Je pense que c'est les fichiers de polices qu'il ne trouve pas. Il sont stockés dans un dossier Fonts. Il y en a 7 différents qui portent des noms du style (Alanden_.ttf , RASCAL__.TTF, ELECHA__.TTF,...)
 Merci d'avance pour votre aide,


---------------
Mon vieux feedback :)
Reply

Marsh Posté le 18-01-2008 à 22:21:41   

Reply

Marsh Posté le 19-01-2008 à 13:15:19    

ddsjm a écrit :

Bonjour,
 

Code :
  1. [...]
  2.      putenv('GDFONTPATH='.realpath('./fonts'));
  3.      $lafont=$tword[$i]['font'];
  4. [..]


[...]Il sont stockés dans un dossier Fonts. [...]


 
Tu mets dans ton code "fonts" (avec un f minuscule) et dans ton commentaire "Fonts" (avec un F majuscule). Est-ce une erreur de recopie ou la réalité ? Car le Php est "case sensitive"...


Message édité par babasss le 19-01-2008 à 13:15:50

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 19-01-2008 à 14:07:03    

Bonjour,
c'est une petite erreur de ma part la majuscule.
Par contre je viens de trouver ce qu'il fallait faire pour résoudre le problème. Le site est hébergé chez Free qui a activé le safe_mode(si ça vous parle bah tant mieux...). J'ai donc mis les fichiers des polices dans le même répertoire que celui qui contenait le fichier .php et j'ai remplacé la ligne 25 par :

Code :
  1. putenv('GDFONTPATH='.realpath('./'));


Et miracle ca marche... comment n'y ai-je pas pensé plus tot... :lol:  
Merci quand même pour votre aide...


Message édité par ddsjm le 19-01-2008 à 14:08:46

---------------
Mon vieux feedback :)
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed