Pour me former à Flex, je suis un livre. Seulement j'ai encore beaucoup de mal à comprendre les principes d'AMFPHP. Le but du livre est de développer un site de ecommerce. J'ai beau suivre pas à pas le livre, je n'arrive pas à faire fonctionner AMFPHP. Je me résouds donc à poster un message pour expliquer un problème.

Je précise que je n'utilise pas Flex Builder, mais que je code avec d'un éditeur de texte.

Voici ce que j'ai fait :
J'ai un fichier principal mxml (ereflex.mxml) qui permet de se connecter en tant qu'utilisateur ou administrateur. En fonction de la connexion, le fichier fait appel à un module (utilisateur ou administrateur).

Voyons de plus près le module administrateur (modAministration.mxml):
Il contient 2 onglets qui permettent la gestion des fournisseurs et la gestion des produits. Ce fichier appelle un fichier actionscript qui permet de charger les paramètres amfphp. Voici le fichier actionscript :
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
 
import mx.controls.Alert;
 
/*************************************
          Paramètres AMFPHP          *
**************************************/
public var URL:String;
 
public function chargerParametrageAmfPhp():void{
	var chargeur:URLLoader = new URLLoader();
	var adresse:URLRequest = new URLRequest("parametrage_amfphp.xml");
	chargeur.load(adresse);
	chargeur.addEventListener(Event.COMPLETE, finDuChargement);
	chargeur.addEventListener(IOErrorEvent.IO_ERROR, indiquerErreur);
}
 
public function finDuChargement(e:Event):void{
	var contenu:XML = new XML(e.target.data);
	URL = contenu.amfphp.serveur;
}
 
public function indiquerErreur(e:Event):void{
	Alert.show("Erreur lors du chargement des paramètres amfphp");
}
Le fichier parametrage_amfphp.xml contient uniquement le chemin vers le gateway.php :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
<?xml version="1.0" encoding="utf-8"?>
<parametre>
	<amfphp>
		<serveur>
			<a href="http://localhost/amfphp/gateway.php" target="_blank">http://localhost/amfphp/gateway.php</a>
		</serveur>
	</amfphp>
</parametre>
dans le dossier service d'amfphp, j'ai la classe servModAdministration (servModAdministration.php) dont voici les déclarations :

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
 
class ServModAdministration{
		protected $serveur		= "localhost";
		protected $mdp			= "mysql";
		protected $utilisateur		= "root";
		protected $baseDeDonnees	= "db_reflex";
		protected $connexion		= null;
		protected $methodTable		= null;
 
		public function construct(){
			$this->methodTable = array(
				"serviceListerFournisseurs"=>array(
					"description"=>"Liste les fournisseurs",
					"access"=>"remote"
				),
				"serviceASMFournisseurs"=>array(
					"description"=>"Ajout Suppression Modification d\'un fournisseur",
					"access"=>"remote"
				)
			);
		}
}
J'utilise Easyphp. Ma base de données db_reflex est bien créée et contient des tables et des enregistrements.
J'ai placé le dossier AMFPHP dans le dossier www de EasyPhp. J'ai créé un alias AMFPHP (C:\\Program Files\\EasyPHP 3.0\\www\\amfphp\) sur EasyPhp. Lorsque je clique sur le dossier "browser", cela m'affiche bien ma classe servModAdministration et mes fonctions fonctionnent bien. Lorsque je clique sur le fichier gateway.php, j'ai le message suivant : "amfphp and this gateway are installed correctly. You may now connect to this gateway from Flash..." Je suppose donc que mon amfphp est bien installé.
Mon site est installé à la racine C dans le dossier root_flexsdk. Sur easyphp, j'ai aussi créé un alias pour lancer mon site (C:\\root_flexsdk\\samples\\eReflex\)

Lorsque je lance mon site à partir de mon alias sur EasyPhp, et que je me connecte en mode Administrateur, j'ai le message d'erreur "Erreur lors du chargement des paramètres amfphp" qui provient de ma fonction indiquerErreur() dans le fichier actionScript appelé pour charger les paramètres d'AMFPHP.

J'espère que j'ai tout précisé, que je n'ai rien oublié et que vous avez tout à votre disposition pour m'expliquer l'erreur que j'ai bien pu faire.
Merci d'avance !