IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

je créé un module authentification pas à pas [Fait]


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut je créé un module authentification pas à pas
    Bonjour,

    Je suis entrain de créer la partie administration de mon projet, je développe la partie authentification, et je rencontre des problèmes. J'ouvre ce post qui pourra surement intéressé tout débutant.

    Voici le début de mon code :

    LoginForm.xml
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" 
    	title="Authentification" borderColor="#000000"
    	showCloseButton="true" >
    	<mx:Script>
    		<![CDATA[
     
    			import actionscript.login.*;
     
    			public var _user: User;
     
    			public function onClick(e:MouseEvent):void{
    				_user.login(username.text, password.text);
    			}
    		]]>
    	</mx:Script>
     
        <mx:Form id="loginForm">
            <mx:FormItem label="Nom d'utilisateur">
                <mx:TextInput id="username"/>
            </mx:FormItem>
            <mx:FormItem label="Mot de passe">
                <mx:TextInput id="password" displayAsPassword="true"/>
            </mx:FormItem>
            <mx:ControlBar id="buttonBar" width="100%" horizontalAlign="center">
                <mx:Button id="submit" label="Connexion" click="onClick(event);"/>
            </mx:ControlBar>
            <mx:FormItem id="remember">
                <mx:CheckBox id="rememberMe" label="Se souvenir de moi"/>
            </mx:FormItem>
        </mx:Form>
     
    </mx:TitleWindow>
    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
     
    package actionscript.login{
     
    	import flash.events.EventDispatcher;
    	import mx.controls.Alert;
     
    	public class User  {
    		public function User(){
    		}
     
    		public function login(name:String, password:String):void{
    			Alert.show("test");
    		}
     
    	}
    }
    J'ai une erreur sur la méthode onClick, qui n'est pas instancier :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
    	at components::LoginForm/onClick()[E:\Flex Builder 3\workspace\myWorldMap\src\components\LoginForm.mxml:13]
    	at components::LoginForm/__submit_click()[E:\Flex Builder 3\workspace\myWorldMap\src\components\LoginForm.mxml:26]

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Bonjour,
    Je crois que c'est ton objet _user qui n'est pas instancié. Il faudrait que tu fasses quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" 
    	title="Authentification" borderColor="#000000"
    	showCloseButton="true" creationComplete="onCreationComplete()">
     
    <mx:Script>
    		<![CDATA[
                     public function onCreationComplete():void{
     
                           _user = new User();
                     }
     
                    // le reste de ton code

  3. #3
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut
    Merci ellene de ta réponse.

    Je continue dans le développement du module, et je bloque sur la récupération de la réponse de mon fichier php, voici le code :

    loginForm.xml
    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
     
    ...
    	<mx:Script>
    		<![CDATA[
     
    			import actionscript.login.*;
    			import mx.controls.Alert;
     
    			public var _user: User;
     
    			private function onCreationComplete():void{
    				_user = new User();
    			}
    			public function onClick(e:MouseEvent):void{
    				_user.login(username.text, password.text);
    			}
    		]]>
    	</mx:Script>
    ...
    User.as
    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
    25
    26
    27
    28
    29
    30
    31
    32
     
    public class User extends EventDispatcher{
    		public function User(){
    		}
     
    		public function login(name:String, password:String):void{
     
    			var chargeur : URLLoader = new URLLoader ();
    			//recupere les variables envoye par l url
    			var vars : URLVariables = new URLVariables();
    			vars.user = name;
    			vars.pass = password;
     
    			//definit le fichier php
    			var url:URLRequest = new URLRequest("php/login.php");
    			url.method = URLRequestMethod.POST;
    			//envoie des variables au fichier php
    			url.data = vars;
     
    			chargeur.addEventListener(Event.COMPLETE, endLoading);
    			chargeur.load(url);
     
    		}
     
    		public function endLoading(e:Event):void{
    			var result:XML = XML(e.target.data);
    			if( result == "true" ){
    				Alert.show("Connection ok");
    			}else{
    				Alert.show("Erreur");
    			}	
    		}
    login.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
            echo '<response>true<response>' ;
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TypeError: Error #1088: Le marquage du document après l'élément root doit être composé correctement.
    	at actionscript.login::User/endLoading()[E:\Flex Builder 3\workspace\myWorldMap\src\actionscript\login\User.as:44]
    Je voudrais récupérer le contenu du fichier php, mais XML(e.target.data) ne fonctionne pas

  4. #4
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    et avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<root><response>true<response></root>' ;
    ?

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 78
    Par défaut
    Citation Envoyé par Jim_Nastiq Voir le message
    et avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<root><response>true<response></root>' ;
    ?
    Avec ou sans <root></root> ce sera toujours <response>true</response>
    Le marquage du document après l'élément root doit être composé correctement.

  6. #6
    Membre éclairé Avatar de miya
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 469
    Par défaut
    J'ai suivi vos conseils, en mettant la balise <root> et j'ai regardé ce que je récupère

    Je pensais que l'erreur venait du XML(e.target.data);, mais apparemment cela fonctionne bien si je met uniquement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
            echo "<?xml version=\"1.0\" ?>" ;
            echo "<response>true</response>" 
    ?>
    L'erreur provenait dans le code php, une accolade erroné dans un if, donc en sortie du code il générait pas correctement le code XML.

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Par défaut
    Tu as regardé ce qu'il te renvoie comme valeur ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/11/2014, 21h01
  2. [OCaml]Problème dans un module: je vois pas..
    Par lucky84 dans le forum Caml
    Réponses: 2
    Dernier message: 21/01/2009, 14h03
  3. Réponses: 2
    Dernier message: 07/10/2008, 11h57
  4. Nomachine : authentification mais pas de connexion
    Par sunvialley dans le forum Administration système
    Réponses: 3
    Dernier message: 16/07/2008, 09h31
  5. Savoir si un module existe ou pas
    Par Djohn dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/07/2008, 08h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo