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.
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.
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.▲
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.
Et voici le code du fichier php principal :
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 :
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
Et remplacez-la par
Voilà, vous pouvez utiliser l'application.