Aller au contenu

Problème gd


snwoman49

Sujets conseillés

Bonjour,

J'éxécute la génération des cartes avec gd sur mes 2 serveurs,sur le 1er serveur (mutualisé) tout marche impeccable,mais sur le serveur dédié (chez moi) cela me renvoie un message d'erreur.Me disant que l'imahe http machin truc n'a pas pu s'afficher car elle contient des erreurs,alors que sur l'autre serveur elle s'est affiché.

Voici les extensions dans php.ini

extension=php_bz2.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_exif.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_mime_magic.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_msql.dll
;extension=php_mysql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_w32api.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_yaz.dll
;extension=php_zip.dll
extension=php_mysqli.dll

Maintenant je me demande s'il ne faut pas configurer ces choses ci dessous car je pense que c'est un problème de temps de génération..

# Timeout: The number of seconds before receives and sends time out.
#
Timeout 30

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 14

##
## Server-Pool Size Regulation (MPM specific)
##

# WinNT MPM
# ThreadsPerChild: constant number of worker threads in the server process
# MaxRequestsPerChild: maximum  number of requests a server process serves
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild  0
</IfModule>

Merci pour vos réponses.

Amicalement

Lien vers le commentaire
Partager sur d’autres sites

Il doit y avoir une erreur dans le code. Enfin peut etre aussi dans la config, mais faudrait d'abord voire pourquoi l'image ne peut pas s'afficher.

Il faudrait que tu regardes s'il n'y a pas d'erreur avant d'afficher l'image. Il est fort probable que ton serveur de production masque les warnings donc affiche bien ton image.

Lien vers le commentaire
Partager sur d’autres sites

Dans le code logiquement il n'y a aucune erreur,mais je pense à un temps de génération trop limité dans la conf du dédié,car une image avec le même code mais moins longue à générer s'affiche.

Lien vers le commentaire
Partager sur d’autres sites

Le temps maximum alloué pour créer une image (par défaut) est de 30 secondes.

il faut, j'espère, beaucoup moins longtemps à ton serveur pour créer l'image, ou alors c'est un problème autre.

Tu peux rallonger les temps d'execution, mais ca serait préférable de ne pas toucher à la config. du serveur pour ca.

Tu peux nous poster le code servant à créer l'image ? Qu'on y regarde de plus pret ?

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Je pense qu'il faut plus de 30s.Mais comme c'est le serveur chez moi ca ne gène pas.Voici le code en entier.Faut imaginer que j'en est plus de 50 pages comme ca certaines à générer toutes les heures et les autres à générer toutes les 6h.

J'ai remplacé volontairement la valeur des url par url.

<? $heure = date("H:i");
header ("Content-type: image/Png");
$fichierimage="url";
$im = imagecreatefromjpeg($fichierimage); /* Création d'une image blanche */
$colormin = imagecolorallocate($im, 0, 0, 255);
$colormax = imagecolorallocate($im, 255, 0, 0);
//flensburg
$fa = fopen("url", "r");
$flensburg=fread($fa,100);
$flensburg1 = imagecreatefromgif($flensburg);
fclose($fa);
//flensburg tempe min
$fa = fopen("url", "r");
$flensburg2=fread($fa,100);
imagestring ($im, 4, 200, 120 ,"$flensburg2", $colormin);
fclose($fa);
//flensburg tempe max
$fa = fopen("url", "r");
$flensburg3=fread($fa,100);
imagestring ($im, 4, 240, 120, "$flensburg3", $colormax);
fclose($fa);
//hambourg
$fa = fopen("url", "r");
$hambourg=fread($fa,100);
$hambourg1 = imagecreatefromgif($hambourg);
fclose($fa);
//hambourgtempe min
$fa = fopen("url", "r");
$hambourg2=fread($fa,100);
imagestring ($im, 4,210, 210,"$hambourg2", $colormin);
fclose($fa);
//hambourg tempe max
$fa = fopen("url", "r");
$hambourg3=fread($fa,100);
imagestring ($im, 4,250, 210, "$hambourg3", $colormax);
fclose($fa);
//breme
$fa = fopen("url", "r");
$breme=fread($fa,100);
$breme1 = imagecreatefromgif($breme);
fclose($fa);
//breme tempe min
$fa = fopen("url", "r");
$breme2=fread($fa,100);
imagestring ($im, 4,125, 240,"$breme2", $colormin);
fclose($fa);
//breme tempe max
$fa = fopen("url", "r");
$breme3=fread($fa,100);
imagestring ($im, 4,163, 240, "$breme3", $colormax);
fclose($fa);
//rostok
$fa = fopen("url", "r");
$rostok=fread($fa,100);
$rostok1 = imagecreatefromgif($rostok);
fclose($fa);
//rostok tempe min
$fa = fopen("url", "r");
$rostok2=fread($fa,100);
imagestring ($im, 4,324, 170,"$rostok2", $colormin);
fclose($fa);
//rostok tempe max
$fa = fopen("url", "r");
$rostok3=fread($fa,100);
imagestring ($im, 4,364, 170, "$rostok3", $colormax);
fclose($fa);
//berlin
$fa = fopen("url", "r");
$berlin=fread($fa,100);
$berlin1 = imagecreatefromgif($berlin);
fclose($fa);
//berlin tempe min
$fa = fopen("url", "r");
$berlin2=fread($fa,100);
imagestring ($im, 4,364, 270,"$berlin2", $colormin);
fclose($fa);
//berlin tempe max
$fa = fopen("url", "r");
$berlin3=fread($fa,100);
imagestring ($im, 4,404, 270, "$berlin3", $colormax);
fclose($fa);
//magdeburg
$fa = fopen("url", "r");
$magdeburg=fread($fa,100);
$magdeburg1 = imagecreatefromgif($magdeburg);
fclose($fa);
//magdeburg tempe min
$fa = fopen("url", "r");
$magdeburg2=fread($fa,100);
imagestring ($im, 4,269, 306,"$magdeburg2", $colormin);
fclose($fa);
//magdeburg tempe max
$fa = fopen("url", "r");
$magdeburg3=fread($fa,100);
imagestring ($im, 4,309, 306, "$magdeburg3", $colormax);
fclose($fa);
//bielefeld
$fa = fopen("url", "r");
$bielefeld=fread($fa,100);
$bielefeld1 = imagecreatefromgif($bielefeld);
fclose($fa);
//bielefeld tempe min
$fa = fopen("url", "r");
$bielefeld2=fread($fa,100);
imagestring ($im, 4,180, 341,"$bielefeld2", $colormin);
fclose($fa);
//bielefeld tempe max
$fa = fopen("url", "r");
$bielefeld3=fread($fa,100);
imagestring ($im, 4,220, 341, "$bielefeld3", $colormax);
fclose($fa);
//dieusburg
$fa = fopen("url", "r");
$dieusburg=fread($fa,100);
$dieusburg1 = imagecreatefromgif($dieusburg);
fclose($fa);
//dieusburg tempe min
$fa = fopen("url", "r");
$dieusburg2=fread($fa,100);
imagestring ($im, 4,90, 366,"$dieusburg2", $colormin);
fclose($fa);
//dieusburg tempe max
$fa = fopen("url", "r");
$dieusburg3=fread($fa,100);
imagestring ($im, 4,130, 366, "$dieusburg3", $colormax);
fclose($fa);
//bonn
$fa = fopen("url", "r");
$bonn=fread($fa,100);
$bonn1 = imagecreatefromgif($bonn);
fclose($fa);
//bonn tempe min
$fa = fopen("url", "r");
$bonn2=fread($fa,100);
imagestring ($im, 4,95, 440,"$bonn2", $colormin);
fclose($fa);
//bonn tempe max
$fa = fopen("url", "r");
$bonn3=fread($fa,100);
imagestring ($im, 4,135, 440,"$bonn3", $colormax);
fclose($fa);
//offenbach
$fa = fopen("url", "r");
$offenbach=fread($fa,100);
$offenbach1 = imagecreatefromgif($offenbach);
fclose($fa);
//offenbach tempe min
$fa = fopen("url", "r");
$offenbach2=fread($fa,100);
imagestring ($im, 4,190, 445,"$offenbach2", $colormin);
fclose($fa);
//offenbach tempe max
$fa = fopen("url", "r");
$offenbach3=fread($fa,100);
imagestring ($im, 4,230, 445,"$offenbach3", $colormax);
fclose($fa);
//chemnitz
$fa = fopen("url", "r");
$chemnitz=fread($fa,100);
$chemnitz1 = imagecreatefromgif($chemnitz);
fclose($fa);
//chemnitz tempe min
$fa = fopen("url", "r");
$chemnitz2=fread($fa,100);
imagestring ($im, 4, 280, 394,"$chemnitz2", $colormin);
fclose($fa);
//chemnitz tempe max
$fa = fopen("url", "r");
$chemnitz3=fread($fa,100);
imagestring ($im, 4,320, 394,"$chemnitz3", $colormax);
fclose($fa);
//dresde
$fa = fopen("url", "r");
$dresde=fread($fa,100);
$dresde1 = imagecreatefromgif($dresde);
fclose($fa);
//dresde tempe min
$fa = fopen("url", "r");
$dresde2=fread($fa,100);
imagestring ($im, 4, 370, 360,"$dresde2", $colormin);
fclose($fa);
//dresde tempe max
$fa = fopen("url", "r");
$dresde3=fread($fa,100);
imagestring ($im, 4,410, 360,"$dresde3", $colormax);
fclose($fa);
//nuremberg
$fa = fopen("url", "r");
$nuremberg=fread($fa,100);
$nuremberg1 = imagecreatefromgif($nuremberg);
fclose($fa);
//nuremberg tempe min
$fa = fopen("url", "r");
$nuremberg2=fread($fa,100);
imagestring ($im, 4, 275, 500,"$nuremberg2", $colormin);
fclose($fa);
//nuremberg tempe max
$fa = fopen("url", "r");
$nuremberg3=fread($fa,100);
imagestring ($im, 4,315, 500,"$nuremberg3", $colormax);
fclose($fa);
//stuttgart
$fa = fopen("url", "r");
$stuttgart=fread($fa,100);
$stuttgart1 = imagecreatefromgif($stuttgart);
fclose($fa);
//stuttgart tempe min
$fa = fopen("url", "r");
$stuttgart2=fread($fa,100);
imagestring ($im, 4, 170, 530,"$stuttgart2", $colormin);
fclose($fa);
//stuttgart tempe max
$fa = fopen("url", "r");
$stuttgart3=fread($fa,100);
imagestring ($im, 4,210, 530,"$stuttgart3", $colormax);
fclose($fa);
//munich
$fa = fopen("url", "r");
$munich=fread($fa,100);
$munich1 = imagecreatefromgif($munich);
fclose($fa);
//munich tempe min
$fa = fopen("url", "r");
$munich2=fread($fa,100);
imagestring ($im, 4, 290, 580,"$munich2", $colormin);
fclose($fa);
//munich tempe max
$fa = fopen("url", "r");
$munich3=fread($fa,100);
imagestring ($im, 4,330, 580,"$munich3", $colormax);
fclose($fa);
//texte de la date
$fatxt = fopen("url", "r");
$text=fread($fatxt,18000);
$textcolor = imagecolorallocate($im, 255, 255, 255);
imagestring($im, 5, 5, 100, "$text", $textcolor);
imagestring($im, 3, 28, 611, "Générée : $heure", $textcolor);
imagecopy ($im, $flensburg1, 200, 50, 0, 0, 60, 60 );
imagecopy ($im, $hambourg1, 210, 140, 0, 0, 60, 60 );
imagecopy ($im, $breme1, 126, 170, 0, 0, 60, 60 );
imagecopy ($im, $rostok1, 324, 100, 0, 0, 60, 60 );
imagecopy ($im, $berlin1, 364, 200, 0, 0, 60, 60 );
imagecopy ($im, $magdeburg1, 269, 236, 0, 0, 60, 60 );
imagecopy ($im, $bielefeld1, 180, 270, 0, 0, 60, 60 );
imagecopy ($im, $dieusburg1, 90, 296, 0, 0, 60, 60 );
imagecopy ($im, $bonn1, 95, 380, 0, 0, 60, 60 );
imagecopy ($im, $offenbach1, 190, 375, 0, 0, 60, 60 );
imagecopy ($im, $chemnitz1, 280, 324, 0, 0, 60, 60 );
imagecopy ($im, $dresde1, 370, 290, 0, 0, 60, 60 );
imagecopy ($im, $nuremberg1, 275, 430, 0, 0, 60, 60 );
imagecopy ($im, $stuttgart1, 170, 460, 0, 0, 60, 60 );
imagecopy ($im, $munich1, 290, 510, 0, 0, 60, 60 );
//copie image
imagepng($im);
imagedestroy($im); ?>

Lien vers le commentaire
Partager sur d’autres sites

Là, c'est un script php normal. Je pensais que c'était juste la partie qui générait l'image, qui bloquait.

Pour allonger le temps max. d'un script, tu peux utiliser la fonction :

set_time_limit($nb_sec);

où $nb_sec est le nombre de secondes max. pendant lesquels ton programme peut marcher. (par défaut, c'est 30.. )

Lien vers le commentaire
Partager sur d’autres sites

Pour voir pourquoi l'image ne s'affiche pas, c'est simple :whistling: (enfin, sous FireFox ou sur Netscape car je n'ai pas trouve l'equivalent sur M$-IE).

Tu selectionne ton image et tu fais "Afficher l'image" => S'il y a des erreurs, le navigateur les affichera.

Si ca ne marche pas, tu fais "Propriete" sur l'image et tu copie l'URL de l'image dans le navigateur.

Sinon, dans le meme genre "Information sur la Page", "Media" et tu copie l'URL de l'image correspondante.

il faut peut etre aussi virer le

header ("Content-type:")

avant ...

Lien vers le commentaire
Partager sur d’autres sites

Non, à mon avis, il n'y a pas d'erreurs, il y a juste un script très très long, qui n'a pas le temps de s'executer, à cause du timeout php.

Il fait afficher une image, mais.. c'est un leurre :lol: un peu comme les scripts de statistiques ;)

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...