begin process at 2012 05 27 04:38:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

mercredi 25 novembre 2009 à 13:35:06 | Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

devboman

Membre Club
Bonjour. -------------- (Message d'un newbie FLASH/AS) ---------------
Configuration de mon poste travail :
- ADOBE Flash CS4 Professionnel
- Server EasyPhp version : 2.0.0.0
- Microsoft Visual Studio 2008. (Edition php)
Voila mon souci.
J'ai trouvé sur votre site un SRC qui devait répondre à toutes mes attentes. La source se trouve ICI.
Le problème que je rencontre, est que je n'arrive jamais à retourner correctement la variable status du fichier PHP. J'ai toujours la même erreur : this.status = undefined
En effet lorsque je debug l'AS les variables qui sont retournées vers à Flash sont de cette nature: voir l'image plus bas.
La connexion sur la base est opérationnelle, car utilisée dans un SRC PHP/Html pour mon site internet.
J'ai mis en entête du fichier com.php du source originel le symbole "<?php" en lieu et place de l'original qui était "<?" .
Peut-on m'expliquer ou mon problème se situe? Peux être un problème de comptabilité...
Merci de vos réponses.

mercredi 25 novembre 2009 à 17:14:39 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

Orange73

Membre Club
Réponse acceptée !

Hello,
Du côté php, qu'obtiens tu en faisant un echo de tes POST ?
Peut-on avoir le code de traitement PHP ?

-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)

mercredi 25 novembre 2009 à 18:10:46 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

devboman

Membre Club
Réponse acceptée !
Bonjour.

Lorsque j'appelle le fichier PHP « com.php » depuis une page teste « index.html » j'obtiens la réponse escomptée :
status=ok&name0=ID&name1=mark&l0c0=1&l0c1=Aprilia&l1c0=2&l1c1=B.....48&l47c1=Voxan&l48c0=49&l48c1=Yamaha&l49c0=50&l49c1=Zongshen
Donc le 'echo' me retourne bien le 'status' positionné correctement et ensuite suivent les arguments de ma base.
Je te poste les deux fichiers.

Le ficher "index.html" appelant le fichier php incriminé :
------------------------------------------------------------------------------
<html>
<body>
<FORM NAME="Marque" METHOD="post" ACTION="com.php" >
<input type="hidden" name="serverName" value="localhost">
<input type="hidden" name="serverLogin" value="root">
<input type="hidden" name="serverPassword" value="">
<input type="hidden" name="DBName" value="moto">
<input type="hidden" name="requete" value="SELECT * FROM mark WHERE 1">
<INPUT type="submit" value="Envoyer">
</form>
</body>
</html>
------------------------------------------------------------------------------

Le Fichier appelé "com.php"
------------------------------------------------------------------------------
<?php
//chaine renvoyée à la fin à flash
$toflash = "status=";

if (isset($_POST['serverName']) and
isset($_POST['serverLogin']) and
isset($_POST['serverPassword']) and
isset($_POST['DBName']) and
isset($_POST['requete']))
{

//toutes les variables sont bien arrivées de flash à php
//------------------- connection au server --------------------
if (!mysql_connect($_POST['serverName'],$_POST['serverLogin'],$_POST['serverPassword']))
{
$toflash .= "Impossible de se connecter à la base !";
echo $toflash;
exit;
}

//-------------- connection à la base de donnée ---------------
mysql_select_db($_POST['DBName']);


//------------------ execution de la requete ------------------
if (!($requete = mysql_query(stripslashes($_POST['requete']))))
{
//si la requete est érronée
$toflash .= "Attention, La requète contient des erreurs !";
echo $toflash;
exit;
}

//si la requete est correcte, on extrait le premier mot de la requete
ereg("^[a-zA-Z]+",$_POST['requete'],$requete_type);

//si c'est une requete qui modifie ou ajoute qqch dans la table
if ($requete_type[0] == "DELETE" or $requete_type[0] == "UPDATE" or $requete_type[0] == "delete" or $requete_type[0] == "update"){
//alors on quitte, c'est fini, fin de traitement
$toflash .= "0";
echo $toflash;
exit;
}

//------- remplissage de la variable à renvoyer à flash -------
$toflash .= "ok";

//nombre de colonne dans la requete selectionnée
$nb_champs = mysql_num_fields($requete);

//pour chaque colonne on extrait son nom
for ($i=0;$i<$nb_champs;$i++)
{
$toflash .= "&name$i=".mysql_field_name($requete, $i);
}

//on extrait les données de toute la table (par exemple : l1c2 = ligne 1, colonne 2)
$j=0;
//pour chaque ligne j
while ($req_result = mysql_fetch_row($requete))
{
//pour chaque colonne i
for ($i=0;$i<$nb_champs;$i++)
{
$toflash .= "&l$j"."c$i"."=".$req_result[$i];
}
$j++;
}

}
else
{
//message d'erreur, une variable n'est pas arriver au fichier php
$toflash .= "Erreur lors de la transmission des donnes de flash vers php !";
}
//---- Renvoie des données à flash par la commande "echo" -----
echo $toflash;
?>
------------------------------------------------------------------------------

Merci de me tenir au courant.
Cordialement, Devboman
mercredi 25 novembre 2009 à 19:42:47 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

Orange73

Membre Club
Réponse acceptée !
Et si tu change
Code ActionScript :
this.status

par une autre variable car "status" devient bleu car il est deja defini en tant que variable native de flash, peut-etre donc un litige ?


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)

mercredi 25 novembre 2009 à 19:48:03 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

devboman

Membre Club
Réponse acceptée !
Je vais tester de ce pas en changeant l'intitulé de cette variable et reviens pour te tenir au courant.
Merci en attendant.

Devboman
mercredi 25 novembre 2009 à 19:56:46 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

devboman

Membre Club
Réponse acceptée !
Bonsoir.
Et voila testé!
J'ai remplacé le nom de la variable "status" du fichier PHP par "StatusPhp" et biensur j'ai changé le nom de la variable côté AS toujours par le nom de la variable retournée du PHP par "this.StatusPhp"
Rien!! Cette variable, n'apparait toujours pas dans le debuggeur, côté variables locales, et de part le fait pas possible de la tester.
J'obtiens toujours :
**** PHP : undefined

Devboman
mercredi 25 novembre 2009 à 20:00:19 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

Orange73

Membre Club
Réponse acceptée !
Si tu fais un
Code ActionScript :
trace(this.status);

au debut de ta fonction onLoad avant le if()
qu'obtiens tu ?


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)

mercredi 25 novembre 2009 à 20:08:02 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

devboman

Membre Club
Réponse acceptée !
J'obtiens toujours "undefined"
Je te poste le SRC AS qui est un fichier AS contenant ma class Loadvars
Dans celle-ci tu verras le teste du StatusPhp retourné par le PHP.

Fichier PHPSQL.AS
--------------------------------------------------------
/*

UTILISATION DANS ACTION SCRIPT :

new PHPSQL(server_name, server_login, server_password, db_name); Constructeur du gestionnaire avec les parametres de connection
setServerName(sn : String) : Void Change le nom du serveur
setServerLogin(sl : String) : Void Change le login de connection
setServerPassword(sp : String) : Void Change le mot de passe de connection
setServerDBName(sdbn : String) : Void Change le nom de la base de donnée
request(req : String) : Void Envoie une requete au gestionnaire

onRequest(success:Boolean) : Void Est invoqué une fois que le résultat de la requête est disponible. Les 3 fonctions ci dessous sont alors effectives

getColumnsName() : Array Retourne un tableau des noms de colonnes, ou un tableau vide si aucun resultat, ou null si erreur
getResultAssoc() : Array Retourne un tableau associatif de toutes les lignes, ou un tableau vide si aucun resultat, ou null si erreur
getResult() : Array Retourne un tableau de toutes les lignes/colonnes, ou un tableau vide si aucun resultat, ou null si erreur

*/

/**
* Créer le 25 Novembre 2006.
* CLASSE PHPSQL
* Permet la gestion de requete SQL via flash en passant par php mais entierement simplifié vu de flash.
* La classe permettra toute sorte de requetes, et renverra les données sous forme simplifiées.
* @author schiouff (kc)
* @version 1.0
*/

class PHPSQL extends LoadVars
{

//%%%%%%%%%%%%%%%%%%%%%%%%%%%% VARIABLES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%

private var serverName : String;
private var serverLogin : String;
private var serverPassword : String;
private var DBName : String;
private var requete : String;
private var resultColomnsName : Array;
private var resultAssoc : Array;
private var result : Array;


//%%%%%%%%%%%%%%%%%%%%%%%%%%% CONSTRUCTEUR %%%%%%%%%%%%%%%%%%%%%%%%%%%

public function PHPSQL (server_name : String, server_login : String, server_password : String, db_name : String)
{
super();
serverName = server_name;
serverLogin = server_login;
serverPassword = server_password;
DBName = db_name;
}



//%%%%%%%%%%%%%%%%%%%%%%%%%%%% METHODES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%

public function request(req : String) : Void
{
clear();
//on ajoute la variable de requete
requete = req;
//on envoie les variables au fichier php. En attente de reception...
sendAndLoad("com.php", this, "POST");
}

private function onLoad(success:Boolean) : Void
{
trace(this.StatusPhp);
var i,j : Number;
if (success)
{
//le fichier php a été trouvé et lu
if (this.StatusPhp == "ok")
{
//on a reçu les données de la requete
//>>>>>>>>>> Exploitation des données reçues <<<<<<<<<<
i = 0;
//creation d'un tableau contenant le nom des champs
resultColomnsName = new Array();
while (this["name"+i] != undefined)
{
resultColomnsName = this["name"+i];
this["name"+i] = undefined;
i++;
}
//creation des tableaux associatif ou non
resultAssoc = new Array();
result = new Array();
j = 0;
i = 0;
//pour chaque colonne i
while (this["l"+j+"c"+i] != undefined)
{
resultAssoc[resultColomnsName[i]] = new Array();
result[i] = new Array();
//pour chaque ligne j
while (this["l"+j+"c"+i] != undefined)
{
resultAssoc[resultColomnsName[i]][j] = this["l"+j+"c"+i];
result[i][j] = this["l"+j+"c"+i];
this["l"+j+"c"+i] = undefined;
j++;
}
j = 0;
i++;
}
onRequest(true);
}
else
{
if (this.StatusPhp == "0")
{
//la requete ne renvoie pas de résultat
resultColomnsName = new Array(0);
resultAssoc = new Array(0);
result = new Array(0);
}
else
{
//un probleme est survenue dans la requete
trace("**** PHP : "+this.StatusPhp);
}
onRequest(true);
}
}
else
{
//le fichier php n'a pas pu être lu
onRequest(false);
}
}

//A définir par l'utilisateur
public function onRequest(success:Boolean) : Void
{
trace("OnRequest undefined ! you may define this method if you want to get results :");
trace("obj_PHPSQL.onRequest = function (succes : boolean) { ... }");
}


private function clear() : Void
{
//on initialise les tableaux ( hope there is a GC )
resultColomnsName = null;
resultAssoc = null;
result = null;
}


public function getColumnsName() : Array
{
return resultColomnsName;
}
public function getResultAssoc() : Array
{
return resultAssoc;
}
public function getResult() : Array
{
return result;
}


public function setServerName(sn : String) : Void
{
serverName = sn;
}
public function setServerLogin(sl : String) : Void
{
serverLogin = sl;
}
public function setServerPassword(sp : String) : Void
{
serverPassword = sp;
}
public function setServerDBName(sdbn : String) : Void
{
DBName = sdbn;
}
}
--------------------------------------------------------
Cordialement, [i]Devboman
mercredi 25 novembre 2009 à 20:09:50 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

devboman

Membre Club
Réponse acceptée !
Je te post l'AS qui importe la class.

L'AS du FLA
-------------------------------------------------------------
import PHPSQL;
//
//Attention à la sécurite dans les identifiants
//( cette source n'est pas là pour traiter la sécurité )
gestionnaireDeRequete = new PHPSQL("localhost", "root", "", "moto");
//
//invoqué lors de la reception du résultat d'une requete
gestionnaireDeRequete.onRequest = function(succes)
{
if (succes && (this.getResult() != null))
{
//si la lecture du fichier php a reussi
//et que la requete a reussie
_root.info_msg = "OK ! no pb !";
fill_data_grid(this);
/*
Au retour, 3 tableaux sont disponibles :
-- this.getColumnsName();
----- est un tableau qui contient les noms des colonnes
-- this.getResultAssoc();
----- est un tableau associatif, c'est à dire que
----- ["nom_de_colonne"][1] renvoie la case 1 de la colonne nom_de_colonne
-- this.getResult();
----- est un tableau, c'est à dire que
----- [2][1] renvoie la case 1 de la colonne 2
*/
}
else
{
_root.info_msg = "Error !";
}
};
//fonction pour le bouton envoyer
envoyer.onRelease = function()
{
//on demande une requete à la base de donnée
gestionnaireDeRequete.request(requete);
};
//fonction qui remplie la datagrid
function fill_data_grid(gdr)
{
//on efface tout
datagrid.removeAllColumns();
//c'est reparti
dataTab = new Array();
for (ligne=0; ligne<gdr.getResult()[0].length; ligne++)
{
obj = new Object();
for (col=gdr.getResult().length-1; col>=0; col--)
{
obj[gdr.getColumnsName()[col]] = gdr.getResult()[col][ligne];
}
dataTab.addItem(obj);
}
datagrid.dataProvider = dataTab;
}
-------------------------------------------------------------


Devboman
mercredi 25 novembre 2009 à 20:13:50 | Re : Impossible de retourner ocrrectment une variable d'un Fichier PHP vers Flash

devboman

Membre Club
Réponse acceptée !
Pour l'instant les login password et base de donnée sont dans le FLA.
Côté sécurité et si on arrive à faire fonctionner ce FLA, je changerais l'accés à la base.
Je ne mettrai plus dans le FLA le nom de la base, la table, login et le password.
Ceci se fera par la lecture d'un fichier contenant les données.
Pour l'instant tout est en local donc pas de souci.
Devboman

1 2

Cette discussion est classée dans : fichier, php, flash, red, color


Répondre à ce message

Sujets en rapport avec ce message

Besoin d'aide! [ par nicomtl ] Je suis un débutant des débutants et j'ai besoin d'aide.J'ai créé un formulaire sur flash MX sans probleme. Le formulaire utilise la foction post dans gerer mon site [ par bouber ] voilà mon problemeje gere mon site online par une administration en phpje voudrai le gerer avec une interface en flashpeut on faire ça?peut on transfo Question Flash ou PHP [ par nicooo ] Voici mon probleme, j'ai une animation flash (formulaire) sur un domaine ( example.com ) qui fait appel à un script php (utilisant mysql) qui est sur Problème pour relire fichier php [ par fjx ] Bonjour,je n'arrive pas à recharger un fichier déjà appalé,sous l'apperçu flash (ctrl,entrée) çà marche, mais sur le navigateur le fichier n'est pas r FLASH prioritaire sur PHP et JAVA [ par zappingconception ] Salut à tous,Voilà j'expose mon problème, dans ma page php il y a un fichier flash, et des menus + sous menus en java.Mes sous menus sont toujours cac Flash/php/fichier de données texte [ par JiP83 ] Hello.J'ai un petit soucis, et je sollicite votre aide.J'utilise encore Flash V5 mais je ne pense pas que l'info soit primordiale ici.Le texte est lon récupérer une variable php dans Flash ... [ par agarawa ] Bonjour,j'ai un petit problème sous Flash MXvoilà, ça n'est pas bien compliqué, je souhaite juste récupérer une variable php (enfin plusieurs) sous F FLASH variables de php [ par davidfr ] Bonjour à tous, Je ne connaît pas grand chose à flash (je n'ai des notions qu'en php) et j'ai besoin de récupérer des variables d'un fichier php. J'ai caractere speciaux, flash+php [ par afond ] Bonjour, Alors voila, j'ai un problème, je récupère une variable "titre" d'un fichier php grâce à loadVars("fichier.php"). Je l'affiche dans une zon flash php et rafraichissement [ par kingcobra ] j'ai un petit probleme je vais essayer d'etre clair. j'ai un fichier php ki rempli un fichier txt de la sorte : &var1=blabla&var2=blabla a la suite d


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 5,366 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales