1. 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

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

2.1. Phpmyadmin

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

 
TéléchargerCacherSélectionnez

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

2.2. 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 évidement 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"

2.3. 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  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;

        }


}

2.4. 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échargerCacherSélectionnez

Et voici le code du fichier php principal:

 
TéléchargerCacherSé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 2ème frame.

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

 
TéléchargerCacherSélectionnez

3. Comment utiliser correctement l'application

  • Télécharger le fichier zip et dézippez-le sur votre machine.
  • Editez 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échargerCacherSélectionnez

Et remplacez-là par

 
TéléchargerCacherSélectionnez

Voilà, vous pouvez utiliser l'application.