Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS1/AS2
AS1/AS2 Questions relatives à la programmation ActionScript 1 et 2 (Cours AS2)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/10/2007, 17h14   #1
Invité de passage
 
Inscription : décembre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 22
Points : 3
Points : 3
Envoyer un message via MSN à super-momo
Par défaut php / flash recup variable

Bonjour,
Je suis dans une impasse, je n’arrive pas a récupérer une variable PHP pour l’afficher dans mon SWF !!
J’ai un fichier PHP qui ce nomme news.php avec le code suivant :
Code :
1
2
3
4
5
<?
$titreNewsDB = 'coucou';
$titreNewsDB = utf8_encode($titreNewsDB);
echo "&titreNews = \"$titreNewsDB\"";
?>
Quand je fais appel a ce fichier directement dans le navigateur internet explorer ou Firefox cela me renvoi bien ce qu’il faut pour que mon SWF puisse récupérer les données c'est-à-dire :

&titreNews = " coucou "

Pour mon fichier SWF à la racine donc sur le root, j’ai un clip qui a pour nom d’occurrence news_mc, a l’intérieur de ce clip plusieurs champ de textes dynamiques, deux en tout un avec le nom d’occurrence newsTitre_txt et l’autre newsTexte_txt. J’ai mis mon code as 2.0 sur la première image clé a l’intérieur de mon clip news_mc dans le même clip que mes champ de texte dynamique donc .

Voici mon code as2.0 :

//reception données
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var recepPHP:LoadVars = new LoadVars();
recepPHP.onLoad = function(success:Boolean) {
	if (success) {
		_root.news_mc.newsTitre_txt.html = true;
		_root.news_mc.newsTitre_txt.htmlText = "<u>"+recepPHP.titreNews+"</u>";
		_root.news_mc.newsTexte_txt.html = true;
		_root.news_mc. newsTexte_txt.htmlText = "<i>"+recepPHP.titreNews+"</i>";
		//verif
		_root.news_mc.verif_txt.text = "Chargement ok";
	} else {
		_root.news_mc.verif_txt.text = "Error loading/parsing LoadVars.";
	}
};
//creation d'un objet date pour tuer le cache navigateur
var dateCourante:Date = new Date();
//appel du fichier
recepPHP.load("php/news.php?noCache="+dateCourante.getTime());
Je devrai avoir coucou dans mon champ de texte dynamique dont le nom d’occurrence est newsTitre_txt, mais c’est undefined qui apparait.
C’est bien un problème de variable et non de d’appel du fichier PHP, j’ai créé un champ de texte dynamique avec comme nom d’occurrence verif_txt qui affiche son contenu " appel PHP ok " lorsque ma fonction onLoad est success.

Pouvez-vous m’aider ? Je suis sur vista intégral, Easy PHP 1.8.0.1, Flash cs3, dreamweaver cs3.
super-momo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2007, 12h10   #2
Membre du Club
 
Avatar de Iori Yagami
 
Iori Yagami
Étudiant
Inscription : mai 2007
Messages : 103
Détails du profil
Informations personnelles :
Nom : Iori Yagami
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 103
Points : 50
Points : 50
Envoyer un message via MSN à Iori Yagami
Salut super-momo, en fait j'ai le même problème que toi. Je suis sur PHP 1-8 aussi mais avec Flash 8, pour ton code, je crois que la "&" n'est pas obligatoire dans l'expression suivante :
Citation:
echo "&titreNews = \"$titreNewsDB\"";
donc, supprime la et essais de nouveau.
Moi, c'est pire, quand je visualise le résultat de " recepPHP.toString()" il me renvoi une chaine similaire à celle ci : titreNews20%=20%coucou20%&OnLoad20%= "etc donc je me suis fait une fonction qui utilise la fonction "unscape" pour nettoyer le résultat de toString() et obtenir le résultat voulu. j'ai pas le code ici, mais si tu veux je l'écrirai plutard. c'est pas trés optimal je sais, mais c'est mieux que de rester planter la, en attendant que quelqu'un nous explique pourquoi cela se provoque.

cependant, je voulais te demander, si tu as réussi à envoyer des donner à la page PHP, si oui, je serai ravi de voir ça, merci.
Iori Yagami est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2007, 20h02   #3
Invité de passage
 
Inscription : décembre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 22
Points : 3
Points : 3
Envoyer un message via MSN à super-momo
Par défaut Merci

Merci beaucoup d'avoir répondu je n'y croyais plus .

Je vais essaye d'envoyer une variable a mon PHP et je te dis ce qu'il en est, le plus rapidement possible

Il est vrai que le & n'est pas obligatoire puisqu'il y a une seul variable mais ca ne gène en rien normalement mais je vais essayer
super-momo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/10/2007, 20h47   #4
Invité de passage
 
Inscription : décembre 2006
Messages : 22
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 22
Points : 3
Points : 3
Envoyer un message via MSN à super-momo
Voici mon essai d'envoyer le contenu d'une variable flash a mon php.

Voici le code action script 2.0:

Code :
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
 
//System.useCodepage = true;
//reception données
//
receptionDonnees();
//
function receptionDonnees():Void {
	var recep_php:LoadVars = new LoadVars();
	//
	recep_php.onLoad = function(success:Boolean):Void  {
		if (success) {
			//
			newsTitre_txt.html = true;
			newsTitre_txt.htmlText = "<u>"+this.titre_news+"</u>";
 
			//verif ok
			_root.news_mc.verif_txt.html = true;
			_root.news_mc.verif_txt.wordWrap = true;
			_root.news_mc.verif_txt.htmlText = recep_php.titre_news+"  <br><br>";
			_root.news_mc.verif_txt.htmlText += "Chargement du fichier php ok !";
 
		} else {
 
			//verif echec
			_root.news_mc.verif_txt.html = true;
			_root.news_mc.verif_txt.wordWrap = true;
			_root.news_mc.verif_txt.htmlText = "Erreure de chargement du fichier php";
		}
	};
	//
	//envoi de donnée a php
	var send_lv:LoadVars = new LoadVars();
	send_lv.pouPHP = "données pour php";
	//
	//creation d'un objet date pour tuer le cache navigateur
	var dateCouranteCache:Date = new Date();
	//
	//appel du fichier
	//recep_php.load("news.php?noCache="+dateCouranteCache.getTime());
	send_lv.sendAndLoad("news.php?noCache="+dateCouranteCache.getTime(),recep_php,"POST");
}
Puis le code php de ma page news.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
 
<?
//--------INITIALISATION DES VARIABLES ENVOYEES PAR FLASH---------
if(isset($_POST['pouPHP']))  $pouPHP=$_POST['pouPHP']; else $pouPHP="vide";
 
//affichage texte, a recuperer dans flash.
//resultat de l'affichage titre_news = coucou
$titreNewsDB = 'coucou';
$titreNewsDB = utf8_encode($titreNewsDB);
echo "titre_news = ".$titreNewsDB."<br /> variable recut de la part de flash = ".$pouPHP;
?>
Voici ce que ma page news.php m'affiche lorsque je l'appel :

Code :
1
2
3
 
titre_news = coucou
variable recut de la part de flash = vide
Mon code php ne recupere pas ma variable flash !!!!!!!!!!
Mon swf m'affiche undefined a la place de coucou !!!!!!!!!!!!

Pourtant mon fichier news.php est bien trouvé par mon swf car mon message "Chargement du fichier php ok !" de ma verif s'affiche bien lorsque success est true.
super-momo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2007, 14h08   #5
Membre du Club
 
Avatar de Iori Yagami
 
Iori Yagami
Étudiant
Inscription : mai 2007
Messages : 103
Détails du profil
Informations personnelles :
Nom : Iori Yagami
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 103
Points : 50
Points : 50
Envoyer un message via MSN à Iori Yagami
Salut!
Je t'avais dis que j'ai le même problème pour le moment. et je t'avais aussi d'essayer la fonction toString().

c'est a dire au lieu de faire ça,
Citation:
_root.news_mc.verif_txt.htmlText = recep_php.titre_news+" <br><br>";
fais ça,
Citation:
_root.news_mc.verif_txt.htmlText = recep_php.toString()+" <br><br>";
tu auras quelque chose codée du genre : titre_news20%=20%coucou20%&20%Onload20%=20%5 etc

tu n'a alors que la decrypter a l'aide de la fonction : unscape.
pour l'envoi des données à la page php, ça représente encore un problème pour moi.
Iori Yagami est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/10/2007, 12h04   #6
Membre régulier
 
Inscription : septembre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 60
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 102
Points : 71
Points : 71
Envoyer un message via MSN à jpboogie Envoyer un message via Skype™ à jpboogie
Salut les gars

Voilà ce que j'ai trouvé de mieux jusqu'à présent pour envoyer des données à PHP et récupérer le résultat dans Flash.

Le code Action Script :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
var phpData:LoadVars = new LoadVars();
phpData.onLoad = function(ok:Boolean) {
   if(ok)
      {
      if(this.error) != undefined)
         {
         trace("Error : " + this.error);
         } 
      else
         {
         trace("Le résultat : " + phpdata.resultat);
         }
      }
   else
      {
      trace ("Erreur de transmission des données");
      }   
}
 
phpData.parametre = "données pour PHP";
phpData.sendAndLoad("http://..........", phpData, "GET");
Le code PHP :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<?php
$parametre = $_GET['parametre'];
 
if(empty($parametre)
   {
   $resultat = '&error=paramètre manquant&';
   echo $resultat;
   exit();
   }
 
$resultat='Paramètre reçu : ' . $paramètre' ;
 
echo '&resultat=' . utf8_encode($resultat) . '&'
?>

Voilà si cela peut vous aider....
jpboogie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 11h04   #7
Membre du Club
 
Avatar de Iori Yagami
 
Iori Yagami
Étudiant
Inscription : mai 2007
Messages : 103
Détails du profil
Informations personnelles :
Nom : Iori Yagami
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2007
Messages : 103
Points : 50
Points : 50
Envoyer un message via MSN à Iori Yagami
Salut
ça n'a pas marché aussi
Iori Yagami est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 14h33   #8
Membre régulier
 
Inscription : septembre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 60
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 102
Points : 71
Points : 71
Envoyer un message via MSN à jpboogie Envoyer un message via Skype™ à jpboogie
Citation:
Envoyé par Iori Yagami Voir le message
Salut
ça n'a pas marché aussi
Si si je te garanti que cela marche à 100%. Le problème c'est j'ai fait quelques fautes de frappe en te donnant le code.

Dans la partie Action Script, change

trace("Le résultat : " + phpdata.resultat);


par

trace("Le résultat : " + phpData.resultat);
et regardes aussi dans code PHP, change

if(empty($parametre)

par

if(empty($parametre))
jpboogie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 14h36   #9
Membre régulier
 
Inscription : septembre 2006
Messages : 102
Détails du profil
Informations personnelles :
Âge : 60
Localisation : France

Informations forums :
Inscription : septembre 2006
Messages : 102
Points : 71
Points : 71
Envoyer un message via MSN à jpboogie Envoyer un message via Skype™ à jpboogie
J'ai opublié : à la dernière ligne du PHP, il manque le point virgule. Voilà, vérifies bien tout et je te le répète, CA MARCHE . Si ce n'est pas le cas, c'est qu'il encore des fautes de frappe dan le code.
jpboogie est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h56.


 
 
 
 
Partenaires

Hébergement Web