Juste un tout petit probleme avec GD

Juste un tout petit probleme avec GD - PHP - Programmation

Marsh Posté le 09-09-2004 à 10:58:38    

dans ma page espacevip.php, j'insère l'image de cette manière : <img src="image.php?code=<?php echo $code; ?>"> où $code = 3dfo34 par exemple...
Mon fichier image.php :  

Code :
  1. <?
  2. function CreateImage($code){
  3. // Définition des dimensions
  4. $img = imagecreate(72, 25);
  5. // Défintion des couleurs
  6. $bgc = imagecolorallocate($img, 255, 255, 255);
  7. $black = imagecolorallocate($img, 0, 0, 0);
  8. $gris = imagecolorallocate($img, 128, 128, 128);
  9. // Remplissage du fond
  10. imagefilledrectangle($img, 0, 0, 72, 25, $bgc);
  11. // Ecriture du code (le premier 5 est la taille - de la police par défaut - la plus grande dans GD)
  12. // Ca évite d'avoir à installer FreeType, librairie qui ajoute le support des polices TrueType
  13. imagestring($img, 5, 12, 5, $code, $black);
  14. // Ajout d'un bruit
  15. for($i=0;$i<150;$i++) {
  16.      imagesetpixel($img, rand(0,72), rand(0,25), $gris);
  17. }
  18. // Crétion de l'entête
  19. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
  20. header("Last-Modified: " . gmdate("D, d M Y H:i:s" ) . " GMT" );
  21. header("Cache-Control: no-store, no-cache, must-revalidate" );
  22. header("Cache-Control: post-check=0, pre-check=0", FALSE);
  23. header("Pragma: no-cache" );
  24. // Création de l'image (qualité 15% : très médiocre)
  25. imagejpeg($img, '', 15);
  26. imagedestroy($img);
  27. }
  28. $code = $_GET['code'];
  29. CreateImage($code);
  30. ?>


Sur la page espacevip.php, je ne vois pas le code...
Merci d'avance pour vos réponses !


---------------
Matt
Reply

Marsh Posté le 09-09-2004 à 10:58:38   

Reply

Marsh Posté le 09-09-2004 à 11:07:26    

Quand je mets :

Code :
  1. imagestring($img, 5, 12, 5, "Salut !", $black);


ca marche tres bien...


---------------
Matt
Reply

Marsh Posté le 09-09-2004 à 11:25:55    

L'erreur ne proivient pas de la transmission des paramètre, évtentuellement

Reply

Marsh Posté le 09-09-2004 à 11:29:44    

comment ca ?


---------------
Matt
Reply

Marsh Posté le 09-09-2004 à 11:32:25    

visiblement si tu utilise une chaine constante ca passe, alors l'erreur provient peut etre de la transmission à la page du code, bien que cela semble correcte.
Tu peux faire un echo du code avant l'appel à la fonction pour vérifier le contenu de la variable

Reply

Marsh Posté le 09-09-2004 à 11:34:01    

avec l'appel de la fonction ?
dans la page espacevip.php, si je fais echo $code; ca marche. j'essaye donc avant l'appel de la fonction...


---------------
Matt
Reply

Marsh Posté le 09-09-2004 à 11:35:21    

non je peux pas le faire, parce ca me renvoit des erreurs à cause des header...


---------------
Matt
Reply

Marsh Posté le 09-09-2004 à 11:37:29    

ah! par contre, quand je vais directement à l'url de l'image en mettant un code au hasard genre : image.php?code=222222
ca marche... donc j'ai dû faire une erreur dans le code au moment où ça transmet le code ou je sais pas trop... :D


---------------
Matt
Reply

Marsh Posté le 10-09-2004 à 08:50:41    

dans ma page espacevip.php, il y a le code suivant :  

Code :
  1. $code = substr(md5(time().time()), 0, 6);
  2. $_SESSION['code'] = $code;


Tout simple, c'est pour avoir un code à 6 caractères...
Plus loin dans la même page, j'ai :  

Code :
  1. <?
  2. echo '<form action="espacevip2.php" method="post">';
  3. echo '<P class="texte">Retapez le code suivant <img src="image.php?code='.$code.'"> ici : <input type="text" name="code" maxlength="4" size="4"> (Cela afin de plus sécuriser le système)</P>';
  4. echo '<P class="texte">Entrez ici votre code d\'accès : <input type="text" name="pass" maxlength="10" size="10"></P>';
  5. echo '<P class="texte"><input type="submit" name="ok" value="Validez !"></P>';
  6. echo '</form>';
  7. ?>


En gros, bin le type tape le code qui est sur l'image... et dans l'autre page, je vérifie que ce soit les mêmes. mais le problèmes c'est que le code n'apparaît pas sur l'image...
 
Quelqu'un aurait-il une idée ?


---------------
Matt
Reply

Marsh Posté le 10-09-2004 à 09:34:33    

ne serait-ce pas un problème de cache ?

Reply

Marsh Posté le 10-09-2004 à 09:34:33   

Reply

Marsh Posté le 10-09-2004 à 09:37:41    

JagStang a écrit :

ne serait-ce pas un problème de cache ?


dans le fichier image.php, j'ai ces trois lignes :

Code :
  1. header("Cache-Control: no-store, no-cache, must-revalidate" ); 
  2. header("Cache-Control: post-check=0, pre-check=0", FALSE);
  3. header("Pragma: no-cache" );


ce serait à cause de ça ? ou tu parles d'autre chose ?  :whistle:


---------------
Matt
Reply

Marsh Posté le 13-09-2004 à 17:20:02    

personne n'a d'idee ?


---------------
Matt
Reply

Marsh Posté le 13-09-2004 à 17:25:59    

envoie l'url de ta page image.php


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 13-09-2004 à 17:29:47    

Reply

Marsh Posté le 13-09-2004 à 17:33:36    

Alors 2 choses :
 
précises à ton navigateur qu'il sagit d'une image de type jpeg
 

Code :
  1. Header("Content-type: image/jpeg" );


 
edit : ca deviendra compatible
 
éventuellement revoie ta gestion du cache.
 
Lis ca :  
http://www.nexen.net/docs/php/anno [...] header.php
 
 
 
edit : devrait résoudre tes problèmes de cache
 
 


Message édité par simogeo le 13-09-2004 à 17:34:38

---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
Reply

Marsh Posté le 13-09-2004 à 17:36:58    

Merci beaucoup! C'était bien le Header qui manquait !
:)


---------------
Matt
Reply

Sujets relatifs:

Leave a Replay

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