I. Introduction

Dans cet article, nous vous expliquerons comment créer un espace membre dans une animation Flash. Les données de cet espace membre seront enregistrées dans une base de données MYSQL. Vous devez bien entendu avoir préalablement installé php et mysql sur votre machine.

L'animation consistera en :

  • un formulaire Flash très animé permettant de se connecter ;
  • une communication Flash->PHP->MYSQL permettant de rechercher le membre dans la base de données ;
  • la création de nouveaux membres en utilisant la méthode de cryptage MD5 pour les mots de passe ;
  • un contrôle d'erreur accru avec affichage des erreurs de manière animée.

II. Création de la base de données MYSQL

II-A. Phpmyadmin

Via PhpMyadmin, créez une base de données nommée « flashphp » et copier/coller le code suivant afin de créer votre table.

 
TéléchargerCacher/Afficher le codeSélectionnez

Votre base de données est maintenant prête à être utilisée via flash et PHP.

II-B. Formulaire Flash

Voici le formulaire Flash, le formulaire est composé de deux champs de saisie, d'une case à cocher indiquant si on procède à un enregistrement ou à une authentification et d'un bouton permettant de valider la saisie pour vérifier si le couple login/mot de passe est correct.


Cliquez pour lire la vidéo



Note : cette animation étant une démo, si vous la testez, elle ne se connectera évidemment pas à la base de données puisque nous n'avons pas créé de base de données dédiée à cette animation. Vous devrez donc simplement télécharger le fichier zip. Reportez-vous à la rubrique « Comment utiliser l'application »

II-C. Code du formulaire Flash à placer dans la frame où se trouve le formulaire.

 
Sélectionnez
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.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
stop();
_root.prevloc=null;
monitor.onEnterFrame=function(){
//Cette fonction vérifie en permanence où se trouve le focus
//de manière à démarrer et stopper des animations

        var loc=Selection.getFocus();           
        if(loc == null){
                userarea.gotoAndStop(1);
                passarea.gotoAndStop(1);
                pwdtext.gotoAndStop(1);
                usertext.gotoAndStop(1);
        }
        if(loc == "_level0.user" and loc != _root.prevloc){
                if(_root.ErrorContainer != undefined){
                        _root.ErrorContainer.removeMovieClip();
                }
                usertext.gotoAndPlay("2");
                pwdtext.gotoAndStop(1);
                userarea.play();
                passarea.gotoAndStop(1);
        }
        
        if(loc == "_level0.password" and loc != _root.prevloc){         
                if(_root.ErrorContainer != undefined){
                        _root.ErrorContainer.removeMovieClip();
                }
                usertext.gotoAndStop(1);
                pwdtext.gotoAndPlay("2");
                userarea.gotoAndStop(1);
                passarea.play();
        }
                
        _root.prevloc=loc;
}
        
valider.onPress=function(){             
//Cette fonction exécute le script PHP et capture toute erreur possible
                if(userpass.length < =5){
                        var PhpObject= new LoadVars();
                        PhpObject.username=_root.username;
                        PhpObject.userpass=_root.userpass;
                        PhpObject.onLoad=function(success){
                                if(success){
                                        if(this.error != undefined){
                                                ShowError(this.error);
                                        }
                                        else{
                                                _root.gotoAndPlay(2);
                                        }
                                }
                                else{
                                        ShowError("Erreur durant le chargement");
                                }
                        }
                        
                        if(firstvisit.checked){
                                PhpObject.new_user=1;
                        }
                        PhpObject.sendAndLoad("http://localhost/flashphp.php",PhpObject,"POST");        
                }
                else{
                        ShowError("Le mot de passe doit faire moins de 6 car.");
                }
        

        
}
//Cette fonction crée des MC dynamiquement pour afficher l'erreur
//Elle crée un MC par lettre composant le message d'erreur, le tout dans un MC vide
function ShowError(errmsg){
        if(_root.ErrorContainer != undefined){
                _root.ErrorContainer.removeMovieClip();
        }
        _root.createEmptyMovieClip("ErrorContainer",2);
        _root.ErrorContainer._x=10;
        _root.ErrorContainer._y=90;     
        _root.ErrorContainer.attachMovie("errormsgMC","ErrorLetter0",10);
        _root.ErrorContainer.errorletter0.letterMC.letter.text=errmsg.charAt(0);
        _root.ErrorContainer.errorletter0._x=0;
        _root.ErrorContainer.errorletter0._y=0; 

        for(i=1;i < errmsg.length;i++){
                _root.ErrorContainer.ErrorLetter0.duplicateMovieClip("ErrorLetter"+i,10+i);
                _root.ErrorContainer["ErrorLetter"+i].letterMC.letter.text=errmsg.charAt(i); 
                _root.ErrorContainer["ErrorLetter"+i]._x=(Xpos+(int(i)*8));
                _root.ErrorContainer["ErrorLetter"+i]._y=0;

        }


}

II-D. Scripts PHP

Voici le code des scripts PHP. Ils vont vérifier si le login entré dans Flash existe dans la base Mysql.

Si la case à cocher du formulaire flash a été cochée, le script PHP va ajouter le membre dans la base de données.

Code du fichier "db_config.php"
TéléchargerCacher/Afficher le codeSélectionnez

Et voici le code du fichier php principal :

 
TéléchargerCacher/Afficher le codeSélectionnez

Notez qu'à chaque étape, un contrôle d'erreur est effectué. En cas d'erreur la variable « error » est retournée à Flash.

Donc, quand Flash reprend la main, si la variable « error » n'existe pas, il sait que tout s'est bien passé. Sinon, il affiche l'erreur et ne permet pas à la personne de passer à la 2e frame.

Vous aurez aussi constaté que pour retourner une variable vers flash, il faut la retourner sous ce format :

 
TéléchargerCacher/Afficher le codeSélectionnez

III. Comment utiliser correctement l'application

  • Téléchargez le fichier zip et dézippez-le sur votre machine.
  • Éditez le fichier db_config.php et mettez-y vos propres paramètres de connexion.
  • Dans l'animation Flash, changez cette ligne de code
 
TéléchargerCacher/Afficher le codeSélectionnez

Et remplacez-la par

 
TéléchargerCacher/Afficher le codeSélectionnez

Voilà, vous pouvez utiliser l'application.