Comment empecher la mise en cache d'un .swf ?

Comment empecher la mise en cache d'un .swf ? - HTML/CSS - Programmation

Marsh Posté le 12-05-2003 à 12:38:27    

Salut !
j'utilise un .swf qui me génère un graphique type camembert à partir de données dans un fichier texte.
 
Je mets ce .txt à jour avec php, pas de pb.
 
Mais si j'affiche plusieurs fois le .swf (alors que le .txt a été modifié) j'obtiens toujours le meme graph, comme si il était mis en cache.
 
J'ai essaye de rajouter les  
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />  
<meta http-equiv="Expires" content="0" />
 
dans le head, mais ca ne semble pas suffire.
 
Quelqu'un a t'il une idée svp ?

Reply

Marsh Posté le 12-05-2003 à 12:38:27   

Reply

Marsh Posté le 12-05-2003 à 12:43:16    

"Comment empecher la mise en cache d'un .swf ?"
 
>>> tu la gardes en Local ;)
 
Sérieusement : si tu mets un site sur internet, tu t'exposes à des risques... il n'y aura JAMAIS aucun moyen de protéger complètement ton site.
 
Soit tu gardes ton site chez toi, soit tu acceptes les risques


---------------
www.polychromies.com (Portfolio) - www.photographier-bebe.com (livre photo de bébé) - www.alsacreations.com
Reply

Marsh Posté le 12-05-2003 à 12:46:15    

SIBELIUS a écrit :

"Comment empecher la mise en cache d'un .swf ?"
 
>>> tu la gardes en Local ;)
 
Sérieusement : si tu mets un site sur internet, tu t'exposes à des risques... il n'y aura JAMAIS aucun moyen de protéger complètement ton site.
 
Soit tu gardes ton site chez toi, soit tu acceptes les risques


 
 :heink:  
1- Je suis en intranet
2- Mon but n'est pas d'empecher de download le .swf, mais que mon graphique se mette bien à jour quand les données du txt changent

Reply

Marsh Posté le 12-05-2003 à 12:46:29    

SIBELIUS a écrit :

il n'y aura JAMAIS aucun moyen de protéger complètement ton site.


 
il parle pas de protéger, il parle d'éviter que le browser affiche une vieille version :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-05-2003 à 12:47:05    

antp a écrit :


 
il parle pas de protéger, il parle d'éviter que le browser affiche une vieille version :o


grilled ; )

Reply

Marsh Posté le 12-05-2003 à 12:48:04    

le problème c'est que même si la page n'est pas en cache, le swf le sera
Une solution serait d'"afficher" le swf à partir de php (comme on le fait pour des images, genre showpic?name=truc, et donc de pouvoir envoyer un header disant de pas mettre dans le cache, je sais pas si ça existe
(ne pas oublier d'envoyer aussi le content-type du flash)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-05-2003 à 12:55:52    

kayasax a écrit :


 
 :heink:  
1- Je suis en intranet
2- Mon but n'est pas d'empecher de download le .swf, mais que mon graphique se mette bien à jour quand les données du txt changent


Arf, faudrait peut-être que je lise les sujets avant de répondre  :pt1cable:  
Désolé  :(


---------------
www.polychromies.com (Portfolio) - www.photographier-bebe.com (livre photo de bébé) - www.alsacreations.com
Reply

Marsh Posté le 12-05-2003 à 13:36:59    

antp a écrit :

le problème c'est que même si la page n'est pas en cache, le swf le sera
Une solution serait d'"afficher" le swf à partir de php (comme on le fait pour des images, genre showpic?name=truc, et donc de pouvoir envoyer un header disant de pas mettre dans le cache, je sais pas si ça existe
(ne pas oublier d'envoyer aussi le content-type du flash)


tu veux dire passer par un include ?  
je comprends pas trop ta technique...

Reply

Marsh Posté le 12-05-2003 à 14:35:23    

tu fais ton lien vers bidule.php au lieu de bidule.swf
dans bidule.php tu fais:
header('Content-type c'est du flash';);
header('mets le pas en cache';);
fopen('bidule.swf';);
puis tu lis le fichier et le balance au client (echo, ...)
bon évidemment la syntaxe n'est pas exacte :whistle:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-05-2003 à 14:37:43    

antp a écrit :

tu fais ton lien vers bidule.php au lieu de bidule.swf
dans bidule.php tu fais:
header('Content-type c'est du flash';);
header('mets le pas en cache';);
fopen('bidule.swf';);
puis tu lis le fichier et le balance au client (echo, ...)
bon évidemment la syntaxe n'est pas exacte :whistle:  


 
oki v tester ca merci !!

Reply

Marsh Posté le 12-05-2003 à 14:37:43   

Reply

Marsh Posté le 12-05-2003 à 19:23:01    

j'y arrive po :sweat: !!
antp j'ai essaye ca :  

<?
header("application/x-shockwave-flash" );
header("Content-Disposition: attachment; filename=f5as_piechart.swf" );
 
$filename = "f5as_piechart.swf";
$fd = fopen($filename, "r" );
 
$buffer=fread($fd,filesize("f5as_piechart.swf" ));
{
echo "$buffer";
}
?>


 
ca m'affiche le contenu du .swf sans l'executer, une idee ?
 
sinon j'ai essaye tous les metas tags anti cache , j'ai essaye de passe par un include mais rien a faire ... :(

Reply

Marsh Posté le 12-05-2003 à 19:32:41    

il sert à quoi le content-disposition :??:
et pourquoi tu as pas mis 'Content-type:' devant le content-type ? :D


Message édité par antp le 12-05-2003 à 19:33:03

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-05-2003 à 19:48:49    

Le plus simple & le plus crade : rajouter un paramètre au fichier qu'on veut récupérer.
 
eg <img src='image.jpeg?random'> au lieu de <img src='image.jpeg'>
 
(random étant n'importe quoi, la date, l'heure, ...)

Reply

Marsh Posté le 12-05-2003 à 20:05:01    

antp a écrit :

il sert à quoi le content-disposition :??:
et pourquoi tu as pas mis 'Content-type:' devant le content-type ? :D


 :o  
<?
header("Content-Type: application/x-shockwave-flash" );
$filename = "f5as_piechart.swf";
$fd = fopen($filename, "r" );
$buffer=fread($fd,filesize("f5as_piechart.swf" ));
{
echo "$buffer";
}
?>
 
=> ca me donne bien un swf mais la je n'ai plus les données comme si il ne trouvait plus le fichier txt (qui est pourtant ds le meme repertoire) -> c'est une histoire de chemin absolu ??comment le conaitre ?
 
 
Youdontcare:  
je peux pas parceque je veux afficher plusieurs graph dans une meme page php :
 
<embed src=\"machin.swf\">
---manipulation du fichier texte---
<embed src=\"machin.swf\">
 
etc ...
 
meme si je mets un seul swf par page il me resort le meme graph tant que j'ai pas vide le cache
 
j'ai essaye de rajouter un parametre ex src=\"machin.swf?1\" mais marche po non plus


Message édité par kayasax le 12-05-2003 à 20:05:39
Reply

Marsh Posté le 12-05-2003 à 20:07:29    

kayasax a écrit :


<embed src=\"machin.swf\">
---manipulation du fichier texte---
<embed src=\"machin.swf\">
 


 
heu qui te dit que :
- le browser va avoir fini de d/l le premier avant la modif du fichier (0% de chance)
- le browser va pas downloader les deux à la fois
- le browser va pas commencer à downloader le second avant le premier


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-05-2003 à 20:09:53    

antp a écrit :


 
heu qui te dit que :
- le browser va avoir fini de d/l le premier avant la modif du fichier (0% de chance)
- le browser va pas downloader les deux à la fois
- le browser va pas commencer à downloader le second avant le premier


 :heink: and so ? :whistle:  
et je vous dis je cree une page 1.php qui apele le swf
je vais sur une 2eme page 2.php qui modifie le txt et reafiche le swf j'obtiens tjs pareil

Reply

Marsh Posté le 12-05-2003 à 20:21:08    

ha ok je croyais que les deux étaient dans la même page renvoyée à l'utilisateur :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-05-2003 à 20:22:24    

kayasax a écrit :

j'ai essaye de rajouter un parametre ex src=\"machin.swf?1\" mais marche po non plus

C'est le chargement du .txt par le .swf qu'il faut changer.

Reply

Marsh Posté le 12-05-2003 à 20:48:06    

youdontcare a écrit :

C'est le chargement du .txt par le .swf qu'il faut changer.


ben le txt est charge dans le script flash et j'y conais que dalle en action script  :cry:

Reply

Marsh Posté le 13-05-2003 à 09:22:56    

[:thotho] personne n'a d'autre soluce ?  :(

Reply

Marsh Posté le 13-05-2003 à 10:17:53    

youdontcare a écrit :

C'est le chargement du .txt par le .swf qu'il faut changer.


 
fais ch...
 
j'ai ca dans le .fla  
onClipEvent(load) {
 this.loadVariables("arrayinfo.txt" );
  }
 
je vois pas trop comment je peux modifier .
 
il y a bien des trucs sur cette page http://www.permadi.com/tutorial/flashcache/ mais cela ne concernet que les donnes qui viennet d'un form et pas d'un fichier  :pfff:

Reply

Marsh Posté le 13-05-2003 à 12:16:40    

kayasax a écrit :

je vois pas trop comment je peux modifier .

:heink:
 
Problème : rajouter un paramètre aléatoire à un nom de fichier.
Solution : string(nom) + string(?) + string(random).
 
string(random) peut être un nombre aléatoire, la date en millisecondes, etc.
 
Problème : tu n'as pas l'initiative de faire une recherche google pour chercher  
* comment concaténer deux string
* comment créer un nombre aléatoire (ou récupérer la date)
 
Solution : [:google2]

Reply

Marsh Posté le 13-05-2003 à 12:27:15    

youdontcare a écrit :

:heink:
 
Problème : rajouter un paramètre aléatoire à un nom de fichier.
Solution : string(nom) + string(?) + string(random).
 
string(random) peut être un nombre aléatoire, la date en millisecondes, etc.
 
Problème : tu n'as pas l'initiative de faire une recherche google pour chercher  
* comment concaténer deux string
* comment créer un nombre aléatoire (ou récupérer la date)
 
Solution : [:google2]
 


 
 :pfff: arrete le f...e de gueule !  :pt1cable:  
si je rajoute un random dans le nom de fichier il va jamais reussir a l'ouvrir !!! c'est pas une page c'est un FICHIER TXT .
 
si ct une page j'ai mis la solution dans le lien au dessus (oui je sais faire du google  :sol: )
 
 :hello:  

Reply

Marsh Posté le 13-05-2003 à 12:28:02    

Sinon, si tu as un serveur Apache, tu peux utiliser mod_header http://httpd.apache.org/docs/mod/mod_headers.html et à l'aide d'un .htaccess, ajouter le header qui va bien pour un fichier particulier (en l'occurence ton .swf)


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 13-05-2003 à 12:33:19    

gm_superstar a écrit :

Sinon, si tu as un serveur Apache, tu peux utiliser mod_header http://httpd.apache.org/docs/mod/mod_headers.html et à l'aide d'un .htaccess, ajouter le header qui va bien pour un fichier particulier (en l'occurence ton .swf)


merci je vais voir...

Reply

Marsh Posté le 13-05-2003 à 12:40:36    

kayasax a écrit a écrit :

Je mets ce .txt à jour avec php, pas de pb.


Et ça c'est quoi ? Le serveur il s'en contretamponne le coquillard qu'on lui demande un .gif, un .php, ou un .txt. S'il trouve un gestionnaire spécifique (eg php), il l'éxécute (php.exe tonscript.php), sinon il renvoie bêtement le fichier, paramètres ou pas.
 
Ce qui compte, c'est niveau navigateur : il est obligé de considérer que fichier.txt?1354 et fichier.txt?7897 sont deux fichiers différents, car il ne peut justement pas prédire le comportement du serveur.

Reply

Marsh Posté le 13-05-2003 à 12:46:54    

youdontcare a écrit :

Et ça c'est quoi ? Le serveur il s'en contretamponne le coquillard qu'on lui demande un .gif, un .php, ou un .txt. S'il trouve un gestionnaire spécifique (eg php), il l'éxécute (php.exe tonscript.php), sinon il renvoie bêtement le fichier, paramètres ou pas.
 
Ce qui compte, c'est niveau navigateur : il est obligé de considérer que fichier.txt?1354 et fichier.txt?7897 sont deux fichiers différents, car il ne peut justement pas prédire le comportement du serveur.


on doit pas se coomprendre la ...
 
voici le genre de truc dans mon php :
 

$fp=fopen("arrayinfo.txt","w" );
fwrite($fp,"countValues=$messagerie,$net,$hp3000,$progress&colorValues=00cc33,9900ff,FFFF00,ff0000&categoryValues=Messagerie,Net,HP3000,Progress" );
 
$random=rand(1,999);
?>
 
 
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
 codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
 WIDTH="400" HEIGHT="200" id="f5as_piechart2" ALIGN="">
 <PARAM NAME=movie VALUE="<?echo "f5as_piechart2.swf?$random";?>"> <PARAM NAME=quality VALUE=high> <PARAM NAME=bgcolor VALUE=#ffffeb>  
<?
 
echo "<EMBED src=\"f5as_piechart.swf?$random\" quality=high bgcolor=#FFFFFF  WIDTH=\"200\" HEIGHT=\"106\" NAME=\"f5as_piechart\" ALIGN=\"\"
 TYPE=\"application/x-shockwave-flash\" PLUGINSPAGE=\"http://www.macromedia.com/go/getflashplayer\"></EMBED>";?>
</OBJECT>


 
 
si dans mon.fla je lui dis  this.loadVariables("arrayinfo.txt?random" );  il va m'envoyer bouler nan ? (fichier inexistant) ??
bon j'essaie quand meme

Reply

Marsh Posté le 13-05-2003 à 12:52:35    

kayasax a écrit :

bon j'essaie quand meme

Haaaa ...

Reply

Marsh Posté le 13-05-2003 à 12:59:59    


 
 :love:  :love:  
 
T'es trop fort youdontcare !!
 
en appercu avant publication (flash) j'ai bien une erreur : Error opening URL "file:///L|/Program%20Files/EasyPHP/www/CIT/trafic/piechart/arrayinfo.txt?dummyVar=1074"
 
par contre une fois publié ca marche quand meme !
 
 [:plat00n] pardon, honte sur moi j'ai doute de toi à un moment  :p

Reply

Marsh Posté le 13-05-2003 à 13:01:26    

ha HA !
 
:D

Reply

Marsh Posté le 13-05-2003 à 13:08:54    

Enfin la solution avec Apache me semble plus propre :o


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 13-05-2003 à 13:12:19    

Reply

Marsh Posté le 13-05-2003 à 13:13:39    

gm_superstar a écrit :

Enfin la solution avec Apache me semble plus propre :o

:jap:

Reply

Marsh Posté le 13-05-2003 à 13:21:09    

gm_superstar a écrit :

Enfin la solution avec Apache me semble plus propre :o


oui mais moins portable ... (bien que j'ai pas l'intention de me foutre sous iis  :D )
 

Reply

Marsh Posté le 24-03-2010 à 15:38:40    

j'ai le meme soucis
Désolé pour le déterrage mais pour faire simple si je créé une variable $random
et que j'affiche fichiers.swf?$random ca devrait marcher c'est ça ?

Reply

Marsh Posté le 24-03-2010 à 15:44:20    

ouoi oui ouiiii
plutot fichiers.swf?r=$random


Message édité par gatsu35 le 24-03-2010 à 15:44:25

---------------
Blablaté par Harko
Reply

Marsh Posté le 25-03-2010 à 10:58:41    

bon alors je doit m'y prendre comme un pied, je vais décortiquer un peu tout mon bazar je vais bien finir par trouver

Reply

Marsh Posté le 25-03-2010 à 11:41:40    

Je ne sais pas si ça peut aider, mais j'avais aussi ce souci avec un .xml...
Plutôt que d'opter pour une une variable $random, j'ai "PHPifié" mon XML pour y ajouter des header, afin de rendre mes donnés périmées, pour qu'elles soient régénérées à chaque fois...
C'est peut-etre crade mais fonctionnel :
 

Code :
  1. <?php
  2. header("Content-Type:application/xml" ); // A changer si TXT...
  3. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
  4. header("Last-Modified: " . gmdate("D, d M Y H:i " ) . " GMT" );
  5. header("Cache-Control: no-cache, must-revalidate" );
  6. header("Pragma: no-cache" );
  7.  
  8. // Mes données
  9. // Perso, j'importait le contenu d'un .xml
  10.  
  11. ?>


---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.
Reply

Marsh Posté le 25-03-2010 à 12:23:58    

abais a écrit :

Je ne sais pas si ça peut aider, mais j'avais aussi ce souci avec un .xml...
Plutôt que d'opter pour une une variable $random, j'ai "PHPifié" mon XML pour y ajouter des header, afin de rendre mes donnés périmées, pour qu'elles soient régénérées à chaque fois...
C'est peut-etre crade mais fonctionnel :
 

Code :
  1. <?php
  2. header("Content-Type:application/xml" ); // A changer si TXT...
  3. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT" );
  4. header("Last-Modified: " . gmdate("D, d M Y H:i " ) . " GMT" );
  5. header("Cache-Control: no-cache, must-revalidate" );
  6. header("Pragma: no-cache" );
  7.  
  8. // Mes données
  9. // Perso, j'importait le contenu d'un .xml
  10.  
  11. ?>



Malheureusement en faisant de l'ajax il m'est déjà arrivé que meme en déclarant un no-cache le flux ne soit pas rechargé mais pris depuis le cache selon certains navigateurs


---------------
Blablaté par Harko
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed