OVH Cloud OVH Cloud

image php, firefox et IE

2 réponses
Avatar
Tuckbros
Bonjour tout le monde

J'ai fait un petit site, qui marche parfaitement avec firefox, mais pas
avec IE. Le problème vient de la création d'image. image.php retourne
une image affichable et crée un fichier de la même image mais avec une
qualité supérieure.


<?php

[.....]

@unlink("../../sessions/" . session_id() . "/Avatar.jpg");
imagejpeg($Img,"../../sessions/" . session_id() . "/Avatar.jpg",100);

header ("Content-type: image/jpg");
imagejpeg($Img);
?>


voici la ligne html qui appelle chacun ce script

<a href="save.php"><img src="image.php"></a>


Quelqu'un peut il me dire pourquoi ca fonctionne avec firefox et pas
avec IE ?

PS j'ai demandé l'affichage du fichier de session dans le frame qui pose
probleme. le resultat : le frame est mis a jour correctement, la session
aussi, mais l'image ne change pas. Le problème vient donc de la
génération d'image.

Merci d'avance

le site en question: http://tuckbros9.free.fr/Avatar/

2 réponses

Avatar
Missions courtes
"Tuckbros" a écrit dans le message news:
41c66e3d$0$21925$
Bonjour tout le monde

J'ai fait un petit site, qui marche parfaitement avec firefox, mais pas
avec IE. Le problème vient de la création d'image. image.php retourne
une image affichable et crée un fichier de la même image mais avec une
qualité supérieure.
Voila ce que j'obtiens avec FIREFOX 1.0 sur ton site dans le menu

accessoires :

Warning: fread(): Length parameter must be greater than 0. in
/var/www/free.fr/4/d/tuckbros9/Avatar/html/sess.inc on line 20

Warning: session_start(): Cannot send session cache limiter - headers
already sent (output started at
/var/www/free.fr/4/d/tuckbros9/Avatar/html/sess.inc:20) in
/var/www/free.fr/4/d/tuckbros9/Avatar/html/menu.php on line 3

accessoires
defaut.PNG

Et tu dis que ton site *parfaitement avec Firefox,mais pas avec Internet *.
Qu'est-ce que cela doit-être avec IE ? ? ?

Cordialement.
Michel
Site Missions-courtes

Avatar
Olivier Miakinen

J'ai fait un petit site, qui marche parfaitement avec firefox, mais pas
avec IE. Le problème vient de la création d'image. image.php retourne
une image affichable et crée un fichier de la même image mais avec une
qualité supérieure.


J'ai voulu me rendre compte sur <http://tuckbros9.free.fr/Avatar/> mais
pour le moment il y a des tas d'erreurs PHP un peu partout, alors je ne
sais pas où regarder (si jamais je peux voir quelque chose en ce moment).

À tout hasard, voici déjà une remarque et un hypothèse...

@unlink("../../sessions/" . session_id() . "/Avatar.jpg");
imagejpeg($Img,"../../sessions/" . session_id() . "/Avatar.jpg",100);


Remarque : même si la fonction session_id() retourne toujours la même
chose, et même si elle est rapide, ne serait-ce que pour une question de
lisibilité je te conseille de générer le nom du fichier une seule fois :

$avatar = "../../sessions/" . session_id() . "/Avatar.jpg";
@unlink($avatar);
imagejpeg($Img, $avatar, 100);

header ("Content-type: image/jpg");
imagejpeg($Img);


Je sais qu'Internet Explorer a le bug suivant : quand il reconnaît
l'extension d'un fichier, il ignore le type MIME. Peut-être que cela
arrive aussi quand on ne lui passe pas de nom de fichier aussi ? Si
jamais c'était le cas, tu peux peut-être essayer d'ajouter :

header('Content-Disposition: inline; filename="avatar.jpg"');

Allez, une autre piste, mais je n'y crois pas du tout, ce serait de
mettre un T majuscule à Content-Type :

header ("Content-Type: image/jpg");

Oh ! J'ai bien fait de recopier cette ligne, car elle contient un vrai
bug. C'est jpeg et pas jpg le type de l'image :

header ("Content-Type: image/jpeg");

Ce qui est surprenant, c'est que Firefox l'accepte.

--
Olivier Miakinen
Non, monsieur le juge, je vous le jure : jamais je n'ai cité
Bruxelles dans ma signature.