Je suis en train de développer une nouvelle charte graphique pour un forum.
Cette nouvelle charte graphique contient un bloc de connexion en flash avec un champ login et un champ motdepasse.

J'ai installé AMFPHP 1.9, j'ai fait les tests Helloworld et compagnie pour tester la communication entre Flash, la passerelle AMFPHP et PHP avec succès.

Le forum utilisé est FSB2 (Fire Soft Board) qui inclut un sdk très complet me permettant de récupérer les fonctions de bases.

Je me retrouve donc avec un service nommé "insurgency"
une classe "identification" et une méthode "login($login,$password);"

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
<?php
class identification {
 
	function login($login, $password) {
		// On inclus le sdk du forum
		include_once 'sdk.php';
                      // On crée une instance des outils du forum
		$fsb = new Fsb_sdk();
                      // On appelle la méthode login du forum qui renvoit TRUE ou FALSE si l'utilisateur est correctement identifié
		return $fsb->login($login,$password);
		// Test de réception des paramétres envoyés par FLASH : OK
                      //return $login . $password;
	}
}
 
?>
Mon Flash sur la scéne principale a ce code :
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
// Nous commençons par définir une variable de connection.
var connection:NetConnection = new NetConnection();
// puis nous connectons cette variable au AMFphp
connection.connect("http://localhost/insurgency/public/scripts/amfphp/gateway.php");
// Création des deux fonctions, l´une Succès, l´autre échec.
function succesServeur(strSucces:*):void
{
	trace("Le serveur a bien répondu : " + strSucces);
}
function echecServeur(strEchec:*):void
{
	trace("Echec d´appel");
}
// Création de la variable de Responder, vous pouvez voir 
// que Responder à deux état (succes, echec)
var reponseServeur:Responder = new Responder(succesServeur,echecServeur);
// La variable de connection appel la fonction "login", 
// envoi le résultat à "reponseServeur" 
// et a comme parametre les chaine "mon login" & "mon pass"
connection.call("insurgency.identification.login",reponseServeur,"mon login", "mon pass");
// si tous ce passe bien le serveur répond..
Dans le browser le résultat du login sur un utilisateur non reconnu me renvoit bien FALSE et TRUE si il est reconnu !

Le problème est que mon flash me renvoit une erreur dans la fenetre de sortie :
Error #2044: Unhandled NetStatusEvent:. level=error, code=NetConnection.Call.BadVersion
at plaque_fla::MainTimeline/frame1()
Pourquoi dans le serveur browser, j'obtiens le résultat de ma méthode mais pas dans flash ?