Probleme incompréhensible [Résolu]

Signaler
Messages postés
161
Date d'inscription
vendredi 8 mars 2002
Statut
Membre
Dernière intervention
8 mars 2012
-
Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
-
Bonjour, voila mon soucis, dans une boucle setinterval toutes les secondes (1000ms) je scrutte une base de données mysql et reçois les infos en XML via php, bref tout fonctionne sous l'editeur de flash et si je publie avec un exe ça marche trés bien, mais une fois sur une page web en executant le swf depuis une page web ou même le swf seul, si je modifie une donnée dans ma base mysql (via phpmyadmin) mon script ne met plus à jour ses champs. Par exemple si je scanne dans ma base la valeur de toto=1, au demarrage mon script flash va bien afficher toto=1 et si dans phpmyadmin je met toto=2 et bien mon script m'affiche toujours toto=1 alors que depus l'editeur de flash 8 ou avec le script compilé en exe ça marche, il met bien à jour en temps réel toto=2.

Je deviens fou, c'est incompréhensible là tout est pareil et depuis une pâge web le swf ne capte rien. Quelqu'un a une idée ?

Voila ma routine d'exemple

onClipEvent(load)
{
//*** declaration variable XML
my_xml_infos= new XML();
my_xml_infos.ignoreWhite = true;


function scanne_infos()
{
itvmsg = setInterval(function ()
{
my_xml_infos.load(_global.adresse_serveur+"infos_xml.php");
my_xml_infos.onLoad = function()
{
my_xml_infos_base = my_xml_infos.childNodes[0];
i0 = 0;
while (my_xml_infos_base.childNodes[i0] != null && _global.placement_comtes_termines==true) {
my_xml_infos_node = my_xml_infos_base.childNodes[i0];

// recuperation des variables scruttées dans la base
var toto=my_xml_infos_node.attributes.valeur_toto;

i0++;
}
};
}, 1000);
} // fin de la fonction principale


scanne_infos();


} // fin du on clip event LOAD

5 réponses

Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
Messages postés
161
Date d'inscription
vendredi 8 mars 2002
Statut
Membre
Dernière intervention
8 mars 2012

Super !! j'ai trouvé, c'est bien un pb de cache et il faut mettre dans mes scripts PHP en haut le code
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);

impec tout fonctionne. merci
Messages postés
161
Date d'inscription
vendredi 8 mars 2002
Statut
Membre
Dernière intervention
8 mars 2012

Erf !!! le pire c'est qu'avec mozilla ça marche, je n'ai le problème qu'avec internet explorer : une idée ?? un probleme d'autorisation ? de paramètre ?
Messages postés
161
Date d'inscription
vendredi 8 mars 2002
Statut
Membre
Dernière intervention
8 mars 2012

Oui ça pourrait bien ressembler à ça mais je n'arrive pas à adapter le code exemple à ma routine. Je n'utilise pas XML.sendandload mais uniquement xml.load comment faire ?
j'ai essayer adapté à mon code mais ça ne change rien. Qu'est ce qui cloche ?
my_xml_infos= new XML();
my_xml_infos.ignoreWhite = true;
recepteur = new XML();
dateCourante=new Date();
my_xml_infos.Date=dateCourante.getTime();
my_xml_infos.load(_global.adresse_serveur+"essais_jm.php?pseudo=toto", recepteur,"GET");

Voila le code exemple killer de cache
<li>//On déclare deux objets loadVars pour émettre et recevoir les données</li><li>varEmetteur = new LoadVars();
</li><li>varRecepteur = new LoadVars();
</li><li></li><li>//on crée un nouvel objet date</li><li>dateCourante=newDate();
</li><li></li><li>//on attribue à l'objet loadVars émetteur nos paramètres ainsi que la date</li><li>varEmetteur.param1="kiwi";
</li><li>varEmetteur.param2=3;
</li><li>varEmetteur.date=dateCourante.getTime();
</li><li></li><li>varRecepteur.onLoad = function(succes){
</li><li>if (succes){
</li><li>...
</li><li>}
</li><li>}
</li><li>varEmetteur.sendAndLoad("http://www.monsite.com/requete.php",varRecepteur,"POST");//On appelle la page de requete</li><li></li>
Messages postés
1378
Date d'inscription
samedi 9 octobre 2004
Statut
Membre
Dernière intervention
1 novembre 2010
1
Sinon pour le faire dans Flash. Soit tu mets ta variable de "cachekiller" à la suite de ton utl genre :
monLoadVars.load( "monScript.php?cachekiller="+random(999999) );
ou encore
monLoadVars.load( "monScript.php?cachekiller="+(new Date()).getTime() );

Soit tu ajoute une propriété à ton objet LoadVars qui lui transmettra directement à ton script la variable.
monLoadVars.cachekiller = (new Date()).getTime();
monLoadVars.load(....);