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

Flash Discussion :

[FLASH 8] Récupération variables flash


Sujet :

Flash

  1. #21
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Merci pour ton explication.
    Quand je lance le php avec la variable dans l'URL, ca va san problème et c'est normal.
    CE que je veux, c'est que quand je clic sur mon clip (onMouseUp), je veux qu'une variable de la page test.php soit modifiée.
    Peux-on envoyer ma ariable via flash dans cette page php ?
    A la rigueur en passant par une variable globle??
    Merci d'avance,

  2. #22
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    J'ai essayé d'un peu toutes les façons mais je ne vois pas.
    Si j'inègre mon SWF à ma page test.php, comment puis-je envoyer une valeur à une variable locale (ou de sessionà appartenant à test.php, parce que ici ca va tjs pas, ça affiche rien du tout avec mon code . Voilà donc ce que je fait :

    1) je clic sur mon clip donc ca envoie la valeur à la meme page
    2) je fait F5 pour rafraichir mon fichier php, mais rien, ça reste vide

  3. #23
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Si tu veux mettre dans ta session la variable que tu recois dans ton script mets ca peut etre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $var =  $_GET['variable1'];  // recuperation de la variable envoyee par flash
    if(!isset($_SESSION['var']) || $_SESSION['var'] == $var) {
         $_SESSION['var'] = $var;
    }  
    echo $var;
    ?>
    Lors du clic sur le clip, la variable de session var va s'initialiser a $var, et quand tu lanceras ton script via le navigateur, peut etre que la session ne sera pas reinitialise et que tu auras bien le bon resultat et ainsi tu verras si ton sendAndLoad fonctionne.

  4. #24
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Ca ne change rien non
    C'est donc bien certain maintenant que aucune valeur n'est exportée jusqu'au fichier PHP ou en réinitialisant ma page, ça devrait afficher !!
    Donc il y a un problème de méthode au niveau du flash !!
    J'ai mis mon fichier flash compressé en pièce jointe !
    J'y regarde depuis hier mais je ne vois rien

  5. #25
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Je ne suis pas sur que ca soit un souci de flash, en fait quand tu envoies par flash ta variable et que tu fais echo il le renvoie a flash, et je pense que qd tu rafraichis ta page eh beh ta session est une nouvelle et donc plus de variable var donc pas d'affichage possible. En fait pour etre sur que ca marche ou pas il faudrait au niveau du script stocke la variable dans une base de donnee et verifier ensuite dans la base si ca l'a bien sauvegarde.

  6. #26
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Merci pour l'info
    Et comment puis-je envoyer vers une BDD MySQL par exemple depuis flash ?
    As-tu un bout de code?
    Merci,

  7. #27
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Pour acceder a la BDD tu utilises php, dans le scxript ou tu recuperes ta variable tu rajoute le code necessaire a la connexion a la base, a enregister la valeur dans une des tables, et comme ca tu pourras verifier dans ta base si tu as bien la valeur retourne par flash. Tu ne peux acceder aux bases de donnees par l'intermediaire de flash, mais par php c'est possible

  8. #28
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Petit exemple d'utilisation de BDD SQL sous php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    $db = mysql_connect('localhost', 'login', 'password'); // connexion a la BDD
    mysql_select_db('nom_de_la_base',$db); // selection de la base a utiliser
    $sql = "INSERT INTO 'nom_table' ( `nom_champ` , 'autre_champ', ... ) VALUES (
    'pouet', 'plop', ...)";
    $req = mysql_query($sql);
    mysql_close(); // deconnexion de la BDD
    ?>
    Si tu as besoin de plus d'indication demande moi

  9. #29
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Voilà j'ai essayé et ça ne fonctionne pas, ça ne met rien dans ma BDD MySQL.
    Code flash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    // Création de l'objet LoadVars.
    var lv:LoadVars = new LoadVars();
    // surcharge de la fonction onLoad qui est lancé automatiquement quand l'execution du script et le chargement des donnees est fini.
    lv.onLoad = function(success:Boolean) {
         if (success) {
               // action a faire comme recuperer les donnees envoyes par le script dans une donnee flash.
     
         } else {
              trace ("erreur de chargement");
         }
    };
     
    listener.onMouseUp = function() {
    	deplacement = false;
    //On retourne ici les coordonnées du FondPaysage	
    lv.variable1 = FondPaysage._x;
    lv.sendandLoad("Etape3.php", this, "GET");
    };
    code dans la page Etape3.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $var =  $_GET['variable1'];  // recuperation de la variable envoyee par flash
    if(!isset($_SESSION['var']) || $_SESSION['var'] == $var) {
         $_SESSION['var'] = $var;
    }  
    echo $var;
     
    $db = mysql_connect('localhost', 'root', ''); // connexion a la BDD
    mysql_select_db('CaracteresMB',$db); // selection de la base a utiliser
    $sql = "INSERT INTO 'test' ( `champ1`) VALUES ('$var')";
    $req = mysql_query($sql);
    mysql_close(); // deconnexion de la BDD
    donc nous sommes maiuntenant bien sûr que c'est parce que rien n'est renvoyé du flash. avez-vous une idée ?

  10. #30
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Dans ton code flash tu as sendandLoad? si oui mets sendAndLoad.

  11. #31
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    J'ai changé, mais cela ne change rien.
    La variable $var ne prend toujours aucune valeur..

  12. #32
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    C'est vraiment etrange car j'utilise cette methode dans mon projet et ca marche comme sur des roulettes ...
    Sinon essaie mais j'y crois pas trop fait dans le php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $var =  $_GET['variable1'];  // recuperation de la variable envoyee par flash
    if(!isset($_SESSION['var']) || $_SESSION['var'] == $var) {
         $_SESSION['var'] = $var;
    }  
     
    $db = mysql_connect('localhost', 'root', ''); // connexion a la BDD
    mysql_select_db('CaracteresMB',$db); // selection de la base a utiliser
    $sql = "INSERT INTO 'test' ( `champ1`) VALUES ('$var')";
    $req = mysql_query($sql);
    mysql_close(); // deconnexion de la BDD
     
    echo $var;
    Mettre le echo en dernier mais j'y crois pas trop ...

  13. #33
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    idem , cela ne change rien :'(
    Peux-tu m'envoyer ton fichier php et fla de ton pfojet que j'essaie moi-même de m'en sortir?
    Au cas où voici tout le code du flash :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    // on crée un clip pour mettre le fond d'écran
     
    var FondEcran:MovieClip = this.createEmptyMovieClip("FondEcran", this.getNextHighestDepth());
    FondEcran.loadMovie("images/ArrierePlan/un.gif");
    onEnterFrame=function() // Function appelée continuellement en boucle
    {
        // test si le fond de l'image est bien chargé.
        if((_root.FondEcran.getBytesTotal()>0)&&(_root.FondEcran.getBytesTotal()==_root.FondEcran.getBytesLoaded()))
        {
                // Positions et dimensions de titi et toto
    FondEcran._x=0;
    FondEcran._y=0;
    FondEcran._width=550;
    FondEcran._height=500;
            // On supprim la fonction qui boucle.
            delete this.onEnterFrame;
        }
     
    }
     
    // on crée un clip pour mettre le paysage
     
    var FondPaysage:MovieClip = this.createEmptyMovieClip("FondPaysage", this.getNextHighestDepth());
    FondPaysage.loadMovie("upload/assiette.jpg");
    onEnterFrame=function() // Function appelée continuellement en boucle
    {
        // test si le fond de l'image est bien chargé.
        if((_root.FondPaysage.getBytesTotal()>0)&&(_root.FondPaysage.getBytesTotal()==_root.FondPaysage.getBytesLoaded()))
        {
                // Positions et dimensions de titi et toto
    FondPaysage._x=20;
    FondPaysage._y=20;
    FondPaysage._width=300;
    FondPaysage._height=250;
            // On supprime la fonction qui boucle.
            delete this.onEnterFrame;
        }
     
     
    }
     
    // Code ici pour déplacer le Paysage
     
    var listener:Object = new Object();
    var deplacement:Boolean = false; // booleen pour verifier si le mouvement             doit etre fait.
     
    listener.onMouseDown = function() {
    	deplacement = true;
    	FondPaysage._x = _xmouse;
    	FondPaysage._y = _ymouse;
     
     
    };
     
    // Création de l'objet LoadVars.
    var lv:LoadVars = new LoadVars();
    // surcharge de la fonction onLoad qui est lancé automatiquement quand l'execution du script et le chargement des donnees est fini.
    lv.onLoad = function(success:Boolean) {
         if (success) {
               // action a faire comme recuperer les donnees envoyes par le script dans une donnee flash.
     
         } else {
              trace ("erreur de chargement");
         }
    };
     
    listener.onMouseUp = function() {
    	deplacement = false;
    //On retourne ici les coordonnées du FondPaysage	
    lv.variable1 = FondPaysage._x;
    lv.sendAndLoad("Etape3.php", this, "GET");
    };
     
     
    listener.onMouseMove = function() {
    	if (deplacement == true) {
    		FondPaysage._x = _xmouse;
    		FondPaysage._y = _ymouse;
     
    	}
    };
     
    Mouse.addListener(listener);
    Il y a ptet des choses étranges dedans... ?

  14. #34
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Je t'ai fait un petit dossier de test. Tu decompresses le .rar dans ton dossier www de ton serveur local apache. Tu ouvres flash et tu testes et la tu verras que mon script php renvoie bien la valeur qu'il lui a ete envoye. Pour pas avoir d'ambiguite j'ai meme volontairement change les noms de variables echanges
    J'espere que ces fichiers pourront t'aider pour regler ton probleme. J'y ai mis un fichier .fla, .swf., .php et les images que j'utilise dans le code comme ca tu n'auras rien a changer ^^

    PS: J'ai repris ton code pour le .fla comme ca pas trop de changement, j'espere sincerement que tu trouveras ce qui cloche.

  15. #35
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Merci bcp pour ton code !
    Bon je viens d'essayer. Déja quand je lance ton SWF et que je relache ma souris, j'ai ici un message d'avertissement me disant que le flash essaie de joindre localhost, ce qui est une bonne chose ! Je n'avais déja ps ça au mien...
    mais quand je lance mon swf, que je bouge mon image, enuite je charge bien la page
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/test/test.php
    et voici le résultat affiché :
    pour le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $var_recue = $_GET['coord_x'];
    echo "resultat=".$var_recue;
    ?>
    Donc ma varible ne prend tjs aucune valeur..

    J'ai même essayé avec BDD pour être sûr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    $var_recue = $_GET['coord_x'];
    echo "resultat=".$var_recue;
     
    $db = mysql_connect('localhost', 'root', ''); // connexion a la BDD
    mysql_select_db('CaracteresMB',$db); // selection de la base a utiliser
    $sql = "INSERT INTO 'test' ( `champ1`) VALUES ('$var_recue')";
    $req = mysql_query($sql);
    mysql_close(); // deconnexion de la BDD
    ?>
    Ma table reste vide donc il y a vraiment un problème lors de l'exportation de flash vers php.

    As-tu une idée?!!
    C'est dingue quand meme ce truc !!

  16. #36
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Quand tu lances le .swf tu n'as pas a charge le fichier php ensuite, il est automatiquement execute par ton fichier swf. Donc quand tu lancces le fichier php seul ensuite avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/test/test.php
    bah c'est normal que tu ne recois rien en variable car ta ligne $var_recue = $_GET['coord_x']; ne recoit rien comme valeur pour coord_x.

    Pour tester, tu dois lancer ton swf, cliquer sur ton image et ensuite verifier ta base de données, et surtout ne pas lancer ton fichier php dans un navigateur seul.

    Quand tu lances ton script php avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/test/test.php
    tu n'as comme resultat que resultat= et c'est normal car avec l'adresse que tu mets tu n'envoies aucune valeur pour coord_x. Tu n'as donc pas a lancer le script php, il se lance automatiquement lors du clic de souris dans la fenetre du swf.

  17. #37
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    1) je lance le .swf (j'ai un avertissement comme quoi le fichier va lancer localhost, je mets ok)
    2) je vais voir dans ma BDD et elle est vide...
    Donc le flash n'envoie rien vers le php...

  18. #38
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Salut,

    C'est etrange qu'il te dise qu'il va acceder a localhost, cette action devrait etre transparente enfin bon.
    Dans ton code en flash pourrais tu essayer de remplacer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lv.sendAndLoad("Etape3.php", this, "GET");
    par:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lv.send("Etape3.php", this, "GET");
    et ainsi me dire ce que ca fait, stp?
    Sinon pourrais tu me faire un petit .rar de ton projet (photos, script php, fichier .fla) stp?
    merci de me tenir au courant, on va bien reussir a faire ce que tu veux quand meme

  19. #39
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 795
    Par défaut
    Ah je pense qu'on avance !!
    je travaille en fait maintenant sur ton fichier
    Si je mets ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	lv_send.send("http://localhost/test/test.php", this, "GET");
    Quand je bouge mon image du SWF, directement, cela m'ouvre une nouvelle page avec comme URL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://localhost/test/test.php?coord%5Fx=164
    et avec corps :
    la page php se mets bien à jour à chaque clic de souris

    Si en fait on pourrait avoir la même chose sans que une autre page s'ouvre , ca serait impecc , juste une variable de session quoi
    Ca serait sendAbdLoad qui aurait un prob ?

  20. #40
    Membre expérimenté Avatar de Gnomothir
    Profil pro
    Étudiant
    Inscrit en
    Mai 2006
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 234
    Par défaut
    Pour ne pas a avoir de fenetre qui s'ouvre le mieux est de faire un sendAndLoad et le sendAndLoad ne pose pas de probleme particulier je pense. En fait apres avoir recupere cette variable que veux tu en faire car c'est peut etre dans l'utilisation finale que tu veux en faire qui fait que tu ne l'as pas correctement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/01/2013, 12h07
  2. [FLASH 8] Passage variable Flash -> PHP cryptée
    Par gotcha007 dans le forum Flash
    Réponses: 13
    Dernier message: 20/11/2007, 04h07
  3. [FLASH 8] Detecter changement valeur d'une variable
    Par orelero dans le forum Flash
    Réponses: 1
    Dernier message: 18/02/2006, 19h25
  4. Réponses: 2
    Dernier message: 05/10/2004, 23h43

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