Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2768 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [Flash/PHP] FlashVars ne fonctionne pas avec IE

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Flash/PHP] FlashVars ne fonctionne pas avec IE

n°2061544
ztg
Posté le 07-03-2011 à 02:30:43  profilanswer
 

Salut a tous
 
Afin de cacher le chemin vers mon fichier SWF, j'utilise un fichier source php qui fait un readfile() du swf. Comme j'ai besoin de passer des parametres a flash, je ne peux plus le faire par l'url avec ?var1=value2&var2=value2 donc j'essaie via flashvars
 
Ce qui marche bien avec FF/Chrome/Safari mais pas sous IE.
 
Mon code est le suivant:
 

echo "<object classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" codebase=\"http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0\" width=\"100%\" height=\"100%\">";
        echo "<param name=\"movie\" value=\"flashwrapper.php\" />";
        echo "<param name=\"FlashVars\" value=\"mavar=maval\" />";
        echo "<param name=\"quality\" value=\"high\" />";
        echo "<param name=\"loop\" value=\"true\" />";
        echo "<param name=\"allowfullscreen\" value=\"true\" />";
        echo "<embed src=\"flashwrapper.php\" FlashVars=\"mavar=maval\" loop=\"true\" quality=\"high\" pluginspage=\"http://www.macromedia.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" width=\"100%\" height=\"100%\" allowFullScreen=\"true\"></embed>";
        echo "</object>";


 
Je me suis dit que qqn avait peut etre deja rencontre le probleme?
 
Merci d'avance.

mood
Publicité
Posté le 07-03-2011 à 02:30:43  profilanswer
 

n°2061546
gatsu35
Blablaté par Harko
Posté le 07-03-2011 à 06:07:08  profilanswer
 

flashvars et non FlashVars

 

je ne comprends pas pourquoi les gens mettent des majuscules partout comme ça :/

 

Ensuite si tu passes : ?var1=value1&var2=value2
dans les flashvars, il faut enlever le ? avant.

 

Et attention flashvars est à modifier à 2 endroits au vue de ta déclaration de flash :
le premier c'est dans les <param> puisque ta balise object est écrite de manière à ne passer que sous IE, pour les autres navigateurs elle est écrite pour que ce soit le embed qui soit utilisé


Message édité par gatsu35 le 07-03-2011 à 06:08:37

---------------
Blablaté par Harko
n°2061685
ztg
Posté le 07-03-2011 à 16:03:02  profilanswer
 

je ne comprends pas non plus les majuscules mais j'ai essaye sans et c'est pareil (de toute facon je pense que ces attributes ne sont pas case sensitive), ca ne marche toujours pas
 
et comme tu peux voir dans mon code je n'ai pas mis le ? :)

n°2061708
gatsu35
Blablaté par Harko
Posté le 07-03-2011 à 19:32:09  profilanswer
 

colle le code HTML généré, le php ça on s'en fout, il est mieux de voir le HTML généré, merci


---------------
Blablaté par Harko
n°2061709
ztg
Posté le 07-03-2011 à 19:35:32  profilanswer
 

Code :
  1. <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" width="100%" height="100%"><param name="movie" value="flashwrapper.php" />
  2. <param name="flashvars" value="var1=val1&var2=val2" />
  3. <param name="quality" value="high" />
  4. <param name="loop" value="true" />
  5. <param name="allowfullscreen" value="true" />
  6. <embed src="flashwrapper.php" flashvars="var1=val1&var2=val2" loop="true" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="100%" height="100%" allowfullscreen="true">
  7. </embed>
  8. </object>


n°2061712
ztg
Posté le 07-03-2011 à 19:45:35  profilanswer
 

et flashwrapper.php fait un @readfile('test.swf');

n°2061743
ztg
Posté le 07-03-2011 à 22:05:32  profilanswer
 

(je re-precise que ca marche parfaitement sous chrome/ff/safari...)

n°2061753
gatsu35
Blablaté par Harko
Posté le 07-03-2011 à 22:49:50  profilanswer
 

Peut-être que ton problème vient de flashwrapper.
Il faudrait aussi forcer le mime type dans ton cas.
Ton fichier PHP doit ressembler à ça dans ce cas :

Code :
  1. header('Content-type: application/x-shockwave-flash');
  2. readfile('test.swf');


---------------
Blablaté par Harko
n°2061764
ztg
Posté le 08-03-2011 à 00:27:27  profilanswer
 

voici mon flashwrapper:
 

Code :
  1. header("Content-type: application/x-shockwave-flash" );
  2.         header("Cache-Control: no-cache, no-store, max-age=0, must-revalidate" );
  3.         header("Cache-Control: post-check=0, pre-check=0", false);
  4.         header("Expires: Mon, 20 Dec 1980 00:00:00 GMT" );
  5.         header("Pragma: no-cache" );
  6.         header("Content-Transfer-Encoding: binary" );
  7.         header("Content-Description: File Transfer" );
  8.         @readfile('test.swf');

n°2061779
gatsu35
Blablaté par Harko
Posté le 08-03-2011 à 08:36:43  profilanswer
 

et du coup ya quelque chose qui marche ou pas ?  
JE ne vois pas l'utilité de ton flashwrapper, peut-être pour le cache, mais un simple timestamp collé au flash est plus efficace.


---------------
Blablaté par Harko
mood
Publicité
Posté le 08-03-2011 à 08:36:43  profilanswer
 

n°2061843
ztg
Posté le 08-03-2011 à 15:31:38  profilanswer
 

non, je cherche a cacher le chemin du fichier swf pour eviter sa capture

n°2061844
ztg
Posté le 08-03-2011 à 15:45:30  profilanswer
 

(meme si je me doute qu'un visiteur expert saurait le recuperer autrement, dans la memoire ou autre)

n°2061900
gatsu35
Blablaté par Harko
Posté le 08-03-2011 à 17:57:45  profilanswer
 

ton swf se récupèrera hyper facilement, via charles par exemple, même pas besoin d'être expert.
donc ta protection est quasiment useless.

 

Mais tu ne m'as toujours pas dit si ça marche ou pas ? :)
colle le HTML généré actuel de ta déclaration de flash merci


Message édité par gatsu35 le 08-03-2011 à 17:58:41

---------------
Blablaté par Harko
n°2061919
ztg
Posté le 08-03-2011 à 19:05:15  profilanswer
 

ca ne marche pas, et j'ai poste le code HTML plus haut

n°2061922
ztg
Posté le 08-03-2011 à 19:08:47  profilanswer
 

(et Charles saurait recuperer le Flash meme s'il est transmis en https?)

n°2061942
gatsu35
Blablaté par Harko
Posté le 08-03-2011 à 22:41:53  profilanswer
 

ben oué puisque à partir du moment où tu utilises un logiciel proxy, tu peux faire ce que tu veux

 

sinon tu veux pas passer par swfobject, tu te feras moins chier


Message édité par gatsu35 le 08-03-2011 à 22:42:20

---------------
Blablaté par Harko
n°2061944
ztg
Posté le 08-03-2011 à 23:26:32  profilanswer
 

j'ai entendu parler de ce script mais pour l'instant j'essayais de faire ca de maniere standard... si ce n'est pas possible je regarderai swfobjet, mais est ce qu'il permet d'utiliser un source tel que mon flashwrapper(), je ne sais pas
 

n°2061947
ztg
Posté le 08-03-2011 à 23:49:39  profilanswer
 

bon donc en faite la reponse courte c'est qu'une fois de plus IE veut faire les choses a sa sauce, et que ce qui marche sur les browsers qui respectent les standards ne marche pas sur celui de MS :/


Message édité par ztg le 08-03-2011 à 23:49:58
n°2061956
gatsu35
Blablaté par Harko
Posté le 09-03-2011 à 04:44:54  profilanswer
 

justement utilise SWFobject
 tu fais 1 seule intégration de code et hop


---------------
Blablaté par Harko
n°2062390
ztg
Posté le 10-03-2011 à 21:42:30  profilanswer
 

j'ai essaye le swfobject, ca ne change le probleme en rien
 
IE a un souci avec le readfile() et je n'arrive pas a trouver ce que c'est

n°2062393
ztg
Posté le 10-03-2011 à 22:10:06  profilanswer
 

ptet les headers... mais j'ai eu beau essayer plein de combinaisons ca foire tjrs

n°2062397
gatsu35
Blablaté par Harko
Posté le 10-03-2011 à 22:41:19  profilanswer
 

oublie ton bricolage à la con pour ton SWF, et remet le SWF comme il était avant, puisque de toute manière ça ne sert à rien, personne ne voudra le piquer ton SWF, et pour faire quoi au final ? Le décompiler pour regarder comment c'est codé ?
Bah tout le monde fait ça et basta. Donc oublie. C'est inutile


---------------
Blablaté par Harko
n°2062398
ztg
Posté le 10-03-2011 à 22:43:38  profilanswer
 

Je te remercie pour ton conseil a la con mais je vais continuer d'essayer de comprendre pourquoi ca ne fonctionne pas.  
 
Si je trouve la raison technique je le posterai ici, pour au moins avoir fait avancer le schmilblick :)
 
Bonne soiree.

n°2062409
gatsu35
Blablaté par Harko
Posté le 11-03-2011 à 00:21:22  profilanswer
 

Passer par un fichier PHP qui ne fait "rien" à part déclarer des header pour juste "cacher" un fichier SWF, c'est comme mettre un deuxième slip. C'est inutile.
Quand tu auras compris ça, tu auras tout compris :).

 

A partir du moment ou ton fichier est sur le net, qu'il y ait un .php derrière ou un .swf. Le pékin moyen même le con de service trouveras le moyen de le télécharger.

 

Tu peux essayer de trouver une solution à ton problème, c'est surement le mime type, IE6 voire 7 est assez merdique au niveau des mime-type, peut-être que tu ne déclares pas le bon et que tu devrais rechercher de ce coté là.

 

Edit : enlève tous les autres headers à la con qui ne servent à rien, et laisse juste le premier celui qui déclare le content type


Message édité par gatsu35 le 11-03-2011 à 00:24:16

---------------
Blablaté par Harko
n°2062416
ztg
Posté le 11-03-2011 à 02:04:36  profilanswer
 

Ca m'est deja arrive de porter deux slips (Himalaya sous la tente par -20).  
 
Le truc c'est que tu me dis que je porte deux slips alors que c'est ma veste qui a un probleme, donc tu comprends que ca m'aide pas beaucoup. Quand t'auras compris ca t'auras tout compris :)

n°2062419
ztg
Posté le 11-03-2011 à 03:45:20  profilanswer
 

Bon alors pour info c'etait une histoire de headers.
 
En virant les deux suivants ca marche:
 

//header("Cache-Control: no-cache, no-store, max-age=0, must-revalidate" );
// header("Pragma: no-cache" );


 
 
Donc le coupable etait bien le browser bien connu qui ne respecte pas les standards :)

n°2062425
gatsu35
Blablaté par Harko
Posté le 11-03-2011 à 08:04:33  profilanswer
 

Ou tes headers qui étaient bordeliques :o


---------------
Blablaté par Harko
n°2062616
ztg
Posté le 11-03-2011 à 16:11:29  profilanswer
 

Ce sont des header standard tels que specifies par la norme HTML et qui passent parfaitement sous Firefox 3, Firefox 4, Safari, Chrome, et Opera.

n°2062633
gatsu35
Blablaté par Harko
Posté le 11-03-2011 à 16:36:53  profilanswer
 

Wep faut dire que IE est une chiotte, mais ils se rattrapent avec le 9


---------------
Blablaté par Harko
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  [Flash/PHP] FlashVars ne fonctionne pas avec IE

 

Sujets relatifs
Vous connaissez un PHP Database toolkit ?Fancybox qui fonctionne plus
[PHP] svn ignorer certains fichiers lors des commitsMySQL/PhP - d
Sauts de lignes Textarea (nl2br fonctionne pas)MySQL/PhP Novice - Méthode de travail
Probleme formulaire sur CHROME et pas IEembauche bon programmeur flash pour 1 contrat (player video)
[PHP/SOAP] Par où commencer ?problème vignette+lien / site full flash
Plus de sujets relatifs à : [Flash/PHP] FlashVars ne fonctionne pas avec IE


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR