Focer le rechargement d'image si changée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Focer le rechargement d'image si changée

Re: Focer le rechargement d'image si changée

par Couin » 30 sept. 2019, 14:59

J’avais essayé le date aussi en tout premier, ca n'avais pouint marché :(
Pour ca que j’avais essayé avec le md5.

Re: Focer le rechargement d'image si changée

par Saian » 30 sept. 2019, 14:51

En effet ça serait sensé fonctionner avec le md5 oui. Perso j'ai déjà pu le tester (avec une date plutôt qu'un md5 mais ça ne devrait pas faire de différence) et ça fonctionnait bien sous Firefox et Chrome.

Re: Focer le rechargement d'image si changée

par Couin » 30 sept. 2019, 14:38

Hello,

Merci pour ta réponse :)

Je ne peux pas changer le nom dues fichiers car ils sont appelés par l'ID de la musique qui passe (en gros, si la musique qui passe a l'ID 5732, ce sera le fichier 5732.jpg qui sera affiché).
Pour ce qui est du rafraîchit que si il est changé, je pensais qu'avec le md5 du fichier (vu que le md5 change si le fichier change normalement ?) ça marcherait mais nan :( Je verrais ce que ça donne avec le uniqid() .

Re: Focer le rechargement d'image si changée

par Saian » 30 sept. 2019, 14:32

Salut, une solution est de modifier le nom du fichier à chaque fois que tu changes l'image. Par exemple tu pourrais faire nom-du-fichier-YmdHis.jpg.
Mais normalement en le mettant après le nom du fichier comme suggéré par @rthur ça doit aussi fonctionner : nom-du-fichier.jpg?YmdHis ou YmdHis pourrait être tiré de la date de modification du fichier, comme ça le fichier n'est rafraichit que si il est modifié.

Re: Focer le rechargement d'image si changée

par Couin » 30 sept. 2019, 14:16

Helloooo : )

Je vais tenter avec uniqid , mais j’avais mis déjà un "?md5_file($image)" (où bien sur $image est le lien image que l'on a dans le src) et cela n'avait rien donné.

Re: Focer le rechargement d'image si changée

par @rthur » 20 sept. 2019, 00:02

Pour l'interface admin, tu peux ajouter un paramètre après le nom de ton image genre l'heure ou un identifiant unique comme ça tu es sûr de ne pas avoir de cache :
<img src="cover.jpeg?<?php echo uniqid(); ?>" />

Re: Focer le rechargement d'image si changée

par Couin » 15 sept. 2019, 14:23

Hello,

Je vais voir à tester ça.
Par contre, concernant le rafraîchissement immédiat dans la partie admin des pochettes, ca ne marchera pas ?

Merkouin :)

Re: Focer le rechargement d'image si changée

par @rthur » 06 sept. 2019, 19:11

Exactement :-D

Re: Focer le rechargement d'image si changée

par Couin » 06 sept. 2019, 17:47

Si tu mets toutes tes pochettes dans un répertoire particulier, il suffit de mettre le .htaccess adapté dans ce répertoire et ça en concernera que les images de ce répertoire.
Ah j’avais pas pensé à ca mais en effet , elles sont dans un répertoire "covers" . Merci pour l'idée :)

Du coup, comment se passerait la gestion des htaccess ?
Je veux dire que pour le site (donc un htaccess à la racine), j'ai un cache d’une certaine durée, et si je met un htaccess avec avec une autre durée de cache, dans le répertoire /img/covers , ce dernier prendra son htaccess à la place de celui qui est à la racine ?

Merci :)

Re: Focer le rechargement d'image si changée

par @rthur » 06 sept. 2019, 16:47

Il faudrait que ca puisse être sélectif,
Sur quoi se base la sélection ? quel critère ?

Si tu mets toutes tes pochettes dans un répertoire particulier, il suffit de mettre le .htaccess adapté dans ce répertoire et ça en concernera que les images de ce répertoire.

Si toutes tes pochettes ont un nom particulier (par exemple commence par cover_...), tu peux adapter la directive FilesMatch du .htaccess pour mettre l'expression régulière qui permettra d'être sélectif que sur ces fichiers.

Re: Focer le rechargement d'image si changée

par Couin » 06 sept. 2019, 16:35

Hello,

Merci pour ta réponse :)

Il n'y a aucune autre solution ? Car j’avais du jouer sur le cache pour éviter le rechargement de autres images (background, boutons, etc etc) du site à chaque visite (évidement, je n'avais pas pensé aux pochettes, qui changeraient lol).
Il faudrait que ca puisse être sélectif, c'est pour ca que j'avais cherché une méthode relative au fichier pochette même et non au cache.

Re: Focer le rechargement d'image si changée

par @rthur » 04 sept. 2019, 10:30

Le temps de cache se définit dans un fichier .htaccess par type de fichier.

Regarde déjà dans la console de ton navigateur (Ctrl+Maj+i), onglet réseau, clique sur une image de pochette et regarde dans les headers leur durée de cache. Il faut regarder si tu as des entêtes "Expires" ou "Cache-Control".

Voici ce qu'il faut mettre dans un htaccess pour indiquer aux navigateurs de ne conserver qu'un cache d'1 heure (=3600 secondes) car ce n'est en général pas bien grave si lors d'un changement d'image il faut attendre une heure pour que ce soit visible chez tous les internautes, sachant que 1h de cache c'est par rapport à la dernière visite donc c'est 1h maximum et pour un visiteur n'ayant jamais visité ton site ça sera immédiat

Code : Tout sélectionner

# BEGIN Expire headers <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access plus 3600 seconds" ExpiresByType image/jpeg "access plus 3600 seconds" ExpiresByType image/png "access plus 3600 seconds" ExpiresByType image/gif "access plus 3600 seconds" </IfModule> # END Expire headers # BEGIN Cache-Control Headers <IfModule mod_headers.c> <FilesMatch "\\.(jpe?g|png|gif)$"> Header set Cache-Control "max-age=3600, public" </FilesMatch> </IfModule> # END Cache-Control Headers

Focer le rechargement d'image si changée

par Couin » 03 sept. 2019, 23:43

COUIN !!! :P

Toujours sur mon site de webradio, et mes pochettes .

Alors dans l'admin du site, j'ai une liste de x titres avec leurs pochettes, et, lorsque je change des pochettes de titres (parce que j'en ai trouvé des meilleurs par exemple), je valide le formulaire, une page affiche les nouvelles pochettes envoyées, je peux choisir de cliquer sur les pochettes pour les cropper (dans une nouvelle fenêtre, pour ne pas paumer la liste des pochettes envoyées), ou de continuer directement, ce qui me ramène à la page listant les mêmes titres.

Problème, la page a toujours en mémoire les anciennes pochettes au lieu d'afficher les nouvelles.
Si je force l’actualisation de la page (CTRL F5), les nouvelles pochettes sont affichées.


J'avias dans un premier temps rajouté la notion de time à la suite du lien image dans le src mais ca ne fonctionnait pas.

Code : Tout sélectionner

<img src="<?php echo $lien_image; ?>?time=<?php echo time(); ?>" />

Je suis tomé sur un autre sujet où il était conné comme réponse de regarder le md5, muais cela ne marche pas non plus :(

Code : Tout sélectionner

<img src="<?php echo $lien_image; ?>?<?php echo md5_file($lien_image); ?>" />

Il y a potentiellement le même problème coté site visible par les auditeurs .

Y aurait-il une autre méthode (qui fonctionne si possible ) ?

Merkouin :D