deepo Posté 16 Avril 2006 Posté 16 Avril 2006 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 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 ) 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 Posté 17 Avril 2006 Posté 17 Avril 2006 Salut, Les 2 images n'auraient pas le même nom par hasard ?
deepo Posté 17 Avril 2006 Auteur Posté 17 Avril 2006 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 Posté 18 Avril 2006 Posté 18 Avril 2006 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 Posté 18 Avril 2006 Auteur Posté 18 Avril 2006 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 <?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 c'est bien mais pô facile le web... merci de vous interressé à ce pb deepo
captain_torche Posté 18 Avril 2006 Posté 18 Avril 2006 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 : $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 Posté 18 Avril 2006 Posté 18 Avril 2006 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 : <?phpheader("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date du passé?> et une note : 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 Posté 18 Avril 2006 Auteur Posté 18 Avril 2006 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 Posté 18 Avril 2006 Auteur Posté 18 Avril 2006 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 Posté 18 Avril 2006 Posté 18 Avril 2006 (modifié) 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. Modifié 18 Avril 2006 par captain_torche
deepo Posté 18 Avril 2006 Auteur Posté 18 Avril 2006 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 si je trouve pas .. merci
deepo Posté 21 Avril 2006 Auteur Posté 21 Avril 2006 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 Posté 21 Avril 2006 Posté 21 Avril 2006 Plutôt que de créer des images temporaires, je ne saurai que te conseiller d'appeler un fichier PHP comme une image, genre : <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 Posté 21 Avril 2006 Auteur Posté 21 Avril 2006 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 Posté 21 Avril 2006 Auteur Posté 21 Avril 2006 zut j'ai parlé trop vite là aussi ça me crée une image dans mon dossier encore pas bon alors
captain_torche Posté 21 Avril 2006 Posté 21 Avril 2006 Vérifie si ton hébergeur possède la bibliothèque freeType. Cette fonction requiert la bibliothèque GD ainsi que la bibliothèque FreeType. Sinon, tu peux te rabattre sur la fonction imagefttext.
captain_torche Posté 21 Avril 2006 Posté 21 Avril 2006 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 header ("Content-type: image/png"); Tu peux avoir plus d'infos sur le tuto de PHPDebutant concernant les images dynamiques.
deepo Posté 22 Avril 2006 Auteur Posté 22 Avril 2006 hello bon j'ai bien lu les tutos je crée mon image et je met un header("Content-type: image/jpg"); tout ça dans un fichier a part pour voir clair et dans ma page html j'appelle l'image 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 Posté 23 Avril 2006 Posté 23 Avril 2006 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 <?phpheader("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 : <div id="limage"> <?php echo ( "<p class=\"nom\">Photographe : ".$Ident."</p>" ); echo ( "<img src=\"image.php?NumFoto=$NumFoto\">" ); ?> </div>
deepo Posté 24 Avril 2006 Auteur Posté 24 Avril 2006 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 require ("image.php"); dans le fichier où il y a 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 Posté 25 Avril 2006 Posté 25 Avril 2006 Ca rend bien sympa, tout ça 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 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 Posté 25 Avril 2006 Auteur Posté 25 Avril 2006 salut captain torche merci pour l'aide que tu m'as apporté et pour le compliment 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 ) 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 a+
captain_torche Posté 25 Avril 2006 Posté 25 Avril 2006 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
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant