IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Sécurité] Empécher les images PHP de se mettre en cache


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut [Sécurité] Empécher les images PHP de se mettre en cache
    Bonjour,
    pour une méthode de confirmation visuelle je génère un texte sur une image PNG que je créé avec PHP aléatoirement, seulement j'ai un problème, l'image se met en cache dans le navigateur on dirait.

    Voilà le cas de figure :
    - La première fois j'affiche la page, l'image est créé aléatoirement, ca marche
    - Je clique sur soumettre en entrant un mauvais code, donc je retombe sur ma page avec une nouvelle image générée
    - Je décide d'aller dans la barre d'URL et de relancer ma page sans resoumettre el forumulaire, et là bizarement l'image qui apparait était la même que j'avais généré au tout début, mais bizarement la chaine stoquée dans la base de donnée n'est pas celle affichée a l'écran

    -> Conclusion : le navigateur affiche l'ancienne image mise en cache mais PHP lui de son côté créé une chaine différente que celle s'afichant a l'écran

    Comment résoudre ce problème ? Sachant que j'ai utiliser ces headers, qui devaient ne pas mettre l'image en cache normalement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    header('Content-Type: image/png');
    header('Cache-control: no-cache, no-store');

  2. #2
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Une solution simple est de changer l'url de ton image a chaque fois.

    Pour cela, tu peux lui passer un parametre qui ne sera pas utilisé par la suite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="monimage.php?uniqID=<?php echo md5(time()); ?>">
    Comme ca, la valeur sera différente a chaque fois, et en principe le cache devrait la considerer comme une "nouvelle" image.

  3. #3
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Merci !
    Vraiment pas mal comme idée, je viens de tester et le problème a disparu.

    Encore merci à toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 27
    Dernier message: 08/10/2013, 23h09
  2. [D5][SQL Server] Conserver des images dans la BDD
    Par FONKOU dans le forum Bases de données
    Réponses: 8
    Dernier message: 08/06/2008, 19h58
  3. les images dans une base de données
    Par houhou dans le forum Bases de données
    Réponses: 8
    Dernier message: 22/06/2004, 14h27
  4. []filtre sepia pour les images
    Par nabil dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 27/01/2004, 20h41
  5. Des fonctions OGL pour les images de format usuel ?
    Par jamal24 dans le forum OpenGL
    Réponses: 3
    Dernier message: 31/05/2003, 21h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo