Bonjour,
j'ai un petit soucis qui doit être tout bête dans mon application flex.
J'ai un petit formulaire de connexion à un site dans mon fichier mxml :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <mx:Panel title="Login" id="loginPanel" horizontalCenter="0" verticalCenter="-46">
<mx:Form>
<mx:FormItem label="Login :" required="true">
<mx:TextInput id="user"
maxChars="16" />
</mx:FormItem>
<mx:FormItem label="Mot de passe :" required="true">
<mx:TextInput id="pass"
maxChars="16"
displayAsPassword="true" />
</mx:FormItem>
</mx:Form>
<mx:ControlBar horizontalAlign="right">
<mx:Button id="submit"
label="Valider"
click="sendInfos();" />
<mx:Button id="reset"
label="Effacer"
click="reset_click();" />
</mx:ControlBar>
</mx:Panel> |
Ayant déjà un fichier as déclarant un HTTPService en objet, j'avais un conflit pour en créer un en dur dans mon fichier mxml, alors que je l'ai aussi fait en objet :
1 2 3 4 5 6 7 8
| private var srv:HTTPService = new HTTPService();
srv.url = "login.php";
srv.useProxy = false;
srv.method = "POST";
srv.resultFormat = "text";
srv.request = {user: user.text, pass: pass.text};
srv.addEventListener(ResultEvent.RESULT, answer); |
Les fonctions associées à la form et au service sont :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| <mx:Script>
<![CDATA[
import mx.controls.Alert;
private function sendInfos():void {
if(user.text == "" || pass.text == ""){
mx.controls.Alert.show("Remplissez tous les champs svp!")
}else{
srv.send();
}
}
private function answer(evt:Event):void{
if(String(srv.lastResult) == "ok"){
loginPanel.visible = false;
logincanva.visible = false;
}else{
mx.controls.Alert.show(srv.lastResult.toString());
}
}
private function reset_click():void{
user.text = "";
pass.text = "";
}
]]>
</mx:Script> |
Mon fichier php étant juste là pour tester l'appli dans un premier temps, il est assez succin :
1 2 3 4 5 6 7 8 9 10 11
| <?php
if(isset($_POST['user'])&&isset($_POST['pass'])) {
if($_POST['user'] == 'admin') {
echo 'ok';
}else {
echo 'error -- user : '.$_POST['user'].' | pass : '.$_POST['pass'].'';
}
}
?> |
Voici mon problème : le message de retour est toujours "error" avec rien comme user et mot de passe, comme si mes requests (déclarés en objet) ne passaient pas.
idem avec
srv.request = {'user': user.text, 'pass': pass.text};
ou
1 2
| srv.request.user = user.text;
srv.request.pass = pass.text; |
J'ai trouvé plusieurs méthodes sur internet : création d'un variable de type objet, une variable de type xml, etc.. mais aucunes pour l'instant n'a été fructueuses, avez vous une idée pour régler mon problème?
Merci
Partager