Contournement du problème de sécurité crossdomain de flash pour le chargement de données !

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 619 fois - Téléchargée 33 fois

Contenu du snippet

Bonjour tout le monde !!!

Bon voici la problèmatique :
On voudrait pouvoir charger des données issues de fichiers txt, xml ou autre depuis des sites vers le site où se trouve le flash.
C'est à dire que par exemple un flash situé sur toto.com voudrait lire les données d'un fichier xml se trouvant sur tonsite.com.

Si depuis votre machine en local, tout fonctionne bien, il en est tout autrement lorsque votre appli est sur votre site internet.
En effet, la politique de sécurité de macromedia interdit de charger des données depuis d'autres site.
Pour que cela fonctionne, il suffit de mettre un fichier XML du nom de crossdomain.xml qui contient dans ses balises, le nom du domaine du site appelant.
On voit de suite que c'est pas très pratique.

Ma solution :
Elle est hyper simple, il suffit de passer par un PHP !

Source / Exemple :


Voilà comment tout cela se passe.

Côté flash :

data_xml  = new XML();
var_xml    = new LoadVars();
data_xml.ignoreWhite = true; // pas toujours utile selon ce qu'on veut faire.

// on passe la variable urls à php avec l'url du site distant
var_xml.urls="http://www.tonsite.com/fichier.xml";

//on envoi cette variable et on attends en retour le fichier complet avec balises et tout et tout ....
var_xml.sendAndLoad("http://www.monsite.com/parse.php",data_xml);	

data_xml.onLoad = function() {
                                                 Noeud1 = this.firstChild;
                                                 //affichage du contenu du 1er noeud
                                                 trace(Noeud1);
                                                 //traitement des données du xml de votre choix
if (this.loaded) {
                        // affichage du code de status du xml (voir la doc de flasj pour les codes de retour)
                        trace(data_xml.status);
                        trace(" voilà c'est chargé, si vos données sont dans des tableaux vous pouvez travailler avec :!!!");
                        }//loaded
}// onload

//****************************************************
Maintenant voyons le PHP : (parse.php)

<?php
function global_var($var) {

global $HTTP_POST_VARS, $HTTP_GET_VARS;
if (!empty($HTTP_POST_VARS[$var])) {
                                    return $HTTP_POST_VARS[$var];
                                   }elseif (!empty($HTTP_GET_VARS[$var]))
				 	    {
                                    return $HTTP_GET_VARS[$var];
                                    }else{
                                          return '';
                                          }
                                   }

$urls = global_var('urls');
$fcontents = join( '', file( $urls ) );
echo $fcontents;
?>		
---->>>>>>
Voilà ya pas plus simple au niveau du php.

Maintenant vous pouvez transposer cela avec des fichiers txt ou autre en utilisant le meme principe, mais avec LoadVars pour des fichiers TXT. Il me semble que loadvars n'a pas ce problème de sécurité mais sait-on jamais ce que macromédia nous réserve dans sa version prochaine de flash.

Enfin pour le problème de XML c'est ma solution et ça fonctionne bien.

Conclusion :


Sinon j'ai vu que les webmasters ont ajouté la rubrique CLASS c'est classe !

Bon je ne maitrise pas encore bien les class alors si ToP30 (qui me les a fait découvrir) ou un autre codeur, avait envie et surtout le temps de faire de ma source une class, ce serait trop Classe ... arf non Top ! (lol)

A voir également

Ajouter un commentaire

Commentaires

legurou
Messages postés
1
Date d'inscription
lundi 25 juin 2007
Statut
Membre
Dernière intervention
22 août 2008

Je vois pas comment on utilise ce script !
Enfaite, j'utilise un truc flash deja fait qui prend directement le fichier xml ou le lien du flux. Je fait comment pour lui assigné de passer par le php?
okaneganai
Messages postés
47
Date d'inscription
mercredi 10 novembre 2004
Statut
Membre
Dernière intervention
23 mai 2006

Merveilleux!!!!
C'est exactement ce que je cherchais!!!
bravo et merci!!!
cs_alexblue
Messages postés
6
Date d'inscription
samedi 28 mai 2005
Statut
Membre
Dernière intervention
6 juin 2005

J'ai changé d'hébergeur (iFrance --> Multimania), et ça ne renvoit toujours rien.... :(
Loubiou
Messages postés
150
Date d'inscription
mercredi 26 juin 2002
Statut
Membre
Dernière intervention
5 décembre 2008

oui ! en effet, il faut que tu retouches le code PHP.
Me demande quelle version de php ils ont mis en ligne chez ifrance ???
Enfin tu es bien le 1er à avor un pb avec mon script ! arff
Regardes si tu mets bien tout en minuscules partout ....
Allez bon courage tu vas y arriver
cs_alexblue
Messages postés
6
Date d'inscription
samedi 28 mai 2005
Statut
Membre
Dernière intervention
6 juin 2005

Le PHP fonctionne sur mon site... j'ai déjà plusieurs fichiers PHP. Je suis chez iFrance et j'ai Flash MX 6.0.
En local ça ne fonctionne pas non plus... il me sort du texte correspondant à du javascript.
J'ai l'impression que ça vient du fichier PHP... lorsque je le lis, il m'écrit :
Warning: join(): Bad arguments. in /www/.........../site/parse.php on line 16

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.