Version complète: sur le forum Webmaster Hub : refresh avec IE ?
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
deepo
salut

j'affiche une galerie d'images avec des miniatures suivant la catégorie ou par mot clé, et quand on selectionne l'image, je l'ouvre en grand dans une page

je récupère ma variable
$MotCle = $_Post ['Mot'];

ainsi que l'Id de mon image dans la BDD....

et j'affiche ..

tout va bien... avec Firefox biggrin.gif
par contre en testant avec IE l'image qui s'affiche en grand est ...
l'image précédente ( pas dans la BDD mais celle affichée juste avant dans le navigateur ) blink.gif

quelqu'un aurait-il une solution du genre un "refresh" ou autre chose ??
je dis ça parce que quand j'actualise la page, l'image est la bonne ( mais je vais pas obliger le visiteur à actualiser sa page à chaque fois )

merci d'avance
MarvinLeRouge
Salut,

Les 2 images n'auraient pas le même nom par hasard ?
deepo
Heeeuuu non

je récupère l'Id de mon image qui est unique

j'y inclu un texte superposé pour le crédit photo
et un truc en plein milieu pour la protection ( php )

ça marche nickel sous firefox

( beuhhh .. ) ch'ui deg' je viens de tester avec Opera et ça me fait pareil qu'avec IE

en rafraichissant la page, la bonne image s'affiche

y'aurait pas un truc du genre
refresh kkchose pour forcer un peu le truc ??

bon ben je m'y remet

si quelqu'un a une astuce....

merci
captain_torche
Tu pourrais nous donner le code d'image que tu récupères dans chacun des trois cas (premier / second / second après refresh) ?
deepo
salut

voici le code : en fait le code généré est toujours le même pour l'image que j'affiche donc j'ai mis un bout du script

CODE


<?php
$NumFoto = $_GET['NumFoto'] ; //recuperation de l' ID de mon image

// ensuite je me connecte a ma base je recupère les infos que je souhaite afficher sur ma page

// script de fusion de deux images ( pour le copyright )
$nomfichier = "limage.jpg" ; // nom de l'image de sortie.
$qualite = 100 ;

//on va chercher l'image principale
$Image = $La_Foto ; //nom de l'image
$Source = "photos/".$Fotograf."/" ; //emplacement de l'image.
$jpg = imagecreatefromjpeg($Source.$Image) ;
$size = getimagesize($Source.$Image) ;

$Image2 = "copy.png" ; //image a fusionner
$Source2 = "photos/" ;
$png = imagecreatefrompng($Source2.$Image2) ;

//( source1 , source2 , distance_x , distance_y , decal_x, decal_y , longueur , hauteur , alpha)
imagecopymerge ($jpg,$png,100,200,0,0,500,63,25) ;

ImageJPEG($jpg,$nomfichier,$qualite) ; //fichier de sortie
?>

<!-- et dans le code généré le nom de l'image est toujours le même : soit " limage.jpg " -->
<div id="limage">
<?php
echo ( "<p class=\"nom\">Photographe : ".$Ident."</p>" ) ;
echo ( "<img src=\"limage.jpg\" />" ) ; // et c'est là que ça merde
?>
</div>



je comprend bien pourquoi ça merdoy mais j'ai pas de solution huh.gif

c'est bien mais pô facile le web...
merci de vous interressé à ce pb

deepo
captain_torche
Ok, effectivement, comme IE considère qu'il a déjà l'image en cache (même nom généré), il ne va pas aller la télécharger.

Comme je ne connais pas d'astuce pour obliger un explorateur à ne pas mettre une image en cache, je te propose plutôt de générer un nom d'image avec un paramètre aléatoire, histoire qu'elle ne soit pas présente en cache.

Un truc du genre :
CODE
$nomfichier = rand(1000, 9999).'.jpg';

Nom que tu répercuteras, bien sûr, dans ton script via ta variable (ce que tu ne fais actuellement pas en fin de script, dans ton echo).
TheRec
Bonjour,

pour éviter la mise en cache d'une page il est possible d'envoyer des en-têtes le précisant. Il y a plusieurs paramètres à prendre en compte. Pour une simple page, le code suivant (placé avant que tout autre caractère soit envoyé au navigateur) devrait suffire :
CODE
<?php
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé
?>

et une note :
CITATION
Note : Vous pouvez vous rendre compte que vos pages ne sont jamais mises en cache même si vous utilisez tous les en-têtes ci-dessus. Il existe toute une collection de paramètres que les utilisateurs peuvent modifier sur leur navigateur pour modifier le comportement par défaut du cache. En envoyant les en-têtes ci-dessus, vous pouvez imposer vos propres valeurs.

    De plus, les paramètres session_cache_limiter() et session.cache_limiter peuvent être utilisés pour générer les en-têtes de caches corrects, lorsque les sessions sont utilisées.

Pour ces "autres paramètres" je t'invite à consulter la page du manuel PHP et ses commentaires (surtout) de la fonction header.
deepo
merci Captain

t'es un chef !!

ça marche nickel

heu une p'tite chose : en local il me crée une image du genre "5438.jpg" dans le même dossier que mon script ( c'est assez logique )

en ligne ça marche aussi mais les images générées elles sont où ??
dans le dossier temp de l'utilisateur ???
deepo
merci TheRec pour les infos

cette solution ne fonctionne pas à tous les coups apparemment
mais je vais potasser le manuel

et voir quelle solution je garde

en attendant merci encore pour l'aide

rapide et efficace
captain_torche
Vu comment ton fichier est créé, il y a des chances pour que l'image soit créée dans ton répertoire.

Sinon, j'avais également pensé à la solution de TheRec, mais je pensais que ça ne fonctionnerait que pour les pages, et non les images. A tester.
deepo
oui exact captain

je viens de guetter avec filezilla
et le serveur va pas aimer si je fais pas quelque chose..

j'essai de trouver la solution tout seul et
j'appelle au secours :gueule: si je trouve pas ..

merci
deepo
hello

je reviens avec mon pb de refresh

l'astuce de créer une image aléatoire ça marche super top
mais je me vois mal me connecter tous les jours au site pour supprimer
les images créer ... donc pas ça

le coup du header apparemment c'est très pro mais ça ne marche pas...
sous firefox ça ne change rien et sous IE j'ai une page blanche

Beeeuuuhh..

donc j'suis toujours pareil em.. embeter

help
captain_torche
Plutôt que de créer des images temporaires, je ne saurai que te conseiller d'appeler un fichier PHP comme une image, genre :
HTML
<img src="image.php?id=numero" alt="Image dynamique"/>

Ensuite, un p'tit peu de GD par-dessus, et ton image sera créée dynamiquement (et pas mise en cache dans les navigateurs, à ce que je sache).
deepo
encore une fois Merci captain torche

cette fois ça fonctionne
j'ai remplacé l'image que j'appelais "limage.jpg"
par ma variable $La_Foto

et c'est au poil...

heu sans vouloir abuser
je voulais mettre une petite ligne de texte dynamique également
en bas de l'image

ça fonctionne en local mais en ligne le script trouve pas la police
pourtant j'ai mis arial ( je pensais que c'etait courant )

comment on fait pour indiquer un chemin qui soit valable pour tous les utilisateurs
avec "ImageTTFText"

mais bon ça c'est moins grave
deepo
zut j'ai parlé trop vite

là aussi ça me crée une image dans mon dossier

encore pas bon alors
captain_torche
Vérifie si ton hébergeur possède la bibliothèque freeType.
CITATION(PHP.net)
Cette fonction requiert la bibliothèque GD ainsi que la bibliothèque FreeType.


Sinon, tu peux te rabattre sur la fonction imagefttext.
captain_torche
CITATION(deepo @ vendredi 21 avril 2006, 17h46)
zut j'ai parlé trop vite

là aussi ça me crée une image dans mon dossier

encore pas bon alors
*

Si c'est ça, c'est parce que tu crées une image, dans le fichier.
Le principe est de retourner l'image directement au navigateur, avec un header spécifique
CODE
header ("Content-type: image/png");


Tu peux avoir plus d'infos sur le tuto de PHPDebutant concernant les images dynamiques.
deepo
hello

bon j'ai bien lu les tutos
je crée mon image et je met un

CODE
header("Content-type: image/jpg");


tout ça dans un fichier a part pour voir clair
et dans ma page html j'appelle l'image

CODE
echo ( "<img src=\"image.php?NumFoto=$NumFoto\">" );


en un sens ça marche mais l'image s'ouvre toute seule sur une page blanche

on peut pas l'intégrer dans une page html ?
avec le design qui va autour j'veux dire...
xorax
humm bizarre...
l'url de l'image qui s'ouvre toute seul est bien "image.php?NumFoto=$NumFoto" ???

y vaut mieu faire 2 fichier distinct :

image.php : fichier qui génère l'image
CODE
<?php
header("Content-type: image/jpg");
$NumFoto = $_GET['NumFoto'] ; //recuperation de l' ID de mon image

// ensuite je me connecte a ma base je recupère les infos que je souhaite afficher sur ma page

// script de fusion de deux images ( pour le copyright )
$nomfichier = "limage.jpg" ; // nom de l'image de sortie.
$qualite = 100 ;

//on va chercher l'image principale
$Image = $La_Foto ; //nom de l'image
$Source = "photos/".$Fotograf."/" ; //emplacement de l'image.
$jpg = imagecreatefromjpeg($Source.$Image) ;
$size = getimagesize($Source.$Image) ;

$Image2 = "copy.png" ; //image a fusionner
$Source2 = "photos/" ;
$png = imagecreatefrompng($Source2.$Image2) ;

//( source1 , source2 , distance_x , distance_y , decal_x, decal_y , longueur , hauteur , alpha)
imagecopymerge ($jpg,$png,100,200,0,0,500,63,25) ;

ImageJPEG($jpg) ; //sortie
//mais je sais pas comment param la qualité en sorti, faut test
?>


ton fichier où afficher l'image :
CODE
    <div id="limage">
    <?php
 echo ( "<p class=\"nom\">Photographe : ".$Ident."</p>" );
 echo ( "<img src=\"image.php?NumFoto=$NumFoto\">" );
    ?>
    </div>
deepo
a y'est

ouf ça y est ... ça marche

merci a vous qui m'avez aider sur ce coup là
l'erreur que je faisais c'était un

CODE
require ("image.php");


dans le fichier où il y a

CODE
echo ("<img src=\"image.php?numfoto=$numfoto\" />");


ben voilà c'est cool
si vous voulez voir c'est là
photo aerienne

quelques photographes on commencé à remplir aujourd'hui alors c'est un peu vide

soyez indulgent ce n'est que mon 3ème site

merci encore !!

si vous voulez que je mette le code pour l'affichage de l'image...
a+
captain_torche
Ca rend bien sympa, tout ça smile.gif
Juste quelques petits conseils :
Lorsque tu listes les départements, ainsi que les photographes, il serait agréable d'avoir à côté, le nombre de photos associées, pour ne pas à avoir à cliquer sur 15 liens avant d trouver du contenu smile.gif
Sinon, je vois que tu as intégré le multi-pages, et il fonctionne plutôt bien, c'est cool.

Et, pour finir, tu devrais limiter la taille des clichés affichés; les plus gros dépassent de ton design : http://www.lafrancevueduciel.fr/image_phot...to=001145724855
deepo
salut captain torche

merci pour l'aide que tu m'as apporté et pour le compliment rolleyes.gif

pour les departements ( et les deux autres listes d'ailleurs )
j'ai bien pensé affiché le nbr d'image mais ça risque de faire trop long en affichage

apparemment malgré les précautions prises pour un affichage correct sur ecran 15"
j'ai eu des retours comme quoi certains nom sont sur deux lignes ( ce qui est pas top mais bon... )
ce site va évoluer ( il a qu'une semaine ) et il fô d'abord que je m'attelle au referencement ( j'ai du boulot ) wacko.gif

pour les image trop grande, c'est le phootgraphe qui n'a pas bien lu le tuto avant d'uploader ( c'est bien la peine )

j'aurais pu faire un script de redimensionnement
mais je préfère qu'ils optimisent leurs images avant de les mettre sur le serveur
la personne concerné va faire le necessaire pour corriger ça...

en tout cas c'est sympa pour l'aide wink.gif

a+
captain_torche
Si tu ne veux pas redimensionner l'image, tu peux au moins vérifier la largeur de l'image avant de l'enregistrer.
Si elle dépasse une taille maximum, tu n'effectues pas l'enregistrement, et tu renseignes un message d'erreur explicite wink.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.