Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
ACCUEIL FORUM FLASH F.A.Q FLASH TUTORIELS FLASH OUTILS FLASH SOURCES FLASH LIVRES FLASH BLOG FLASH

Travailler avec une base de données via Flash et PHP

22/01/2004

Par Stephane Eyskens (Autres articles)
 

Cet article va vous montrer comment faire interagir Flash et PHP en vous proposant un exemple concret. Je remercie Anomaly pour ses corrections apportées à ce tuto.


1. Introduction
2. Création de la base de données MYSQL
2.1. Phpmyadmin
2.2. Formulaire Flash
2.3. Code du formulaire Flash à placer dans la frame où se trouve le formulaire.
2.4. Scripts PHP
3. Comment utiliser correctement l'application


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.

# # Structure de la table `users` # CREATE TABLE `users` ( `username` varchar(25) NOT NULL default '', `userpwd` varchar(25) NOT NULL default '', PRIMARY KEY (`username`) ) TYPE=MyISAM; //Vous choisissez le type de table que vous voulez
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.




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.


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; } }

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"

<? $conn=mysql_connect('hote','user','pwd') or die("&error=".mysql_error()."&");//Connexion à la BD et retour d'erreur à Flash mysql_select_db('flashphp',$conn) or die("&error=".mysql_error()."&");//Sélection de la BD ?>
Et voici le code du fichier php principal:

<? include "dbconfig.php";//Inclusion de la connexion à la bd //Ce bloc if vérifie s'il s'agit d'un nouveau membre if(!empty($_POST['new_user'])){ mysql_query("insert into users(username,userpwd) values('".$_POST['username']."','".md5($_POST['userpass'])."')") or die("&error=".mysql_error()."&"); exit; } //Ce bloc if vérifie l'existence du membre dans la bd if(!empty($_POST['username']) && !empty($_POST['userpass'])){ $res=mysql_query("select username from users where username='".$_POST['username']."' and userpwd='".md5($_POST['userpass'])."'") or die("&error=".mysql_error()."&"); if(mysql_num_rows($res)!=1){ echo "&error=User/pwd invalide& "; } } else{ echo "&error=Vous devez fournir le user et le pwd&"; } ?>
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:

&lavariable="lavaleur"&


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

PhpObject.sendAndLoad("http://stephaneey.developpez.com/flashphp/flashphp.php",PhpObject,"POST");

Et remplacez-là par

PhpObject.sendAndLoad("votre_url/flashphp.php",PhpObject,"POST");

Voilà, vous pouvez utiliser l'application.



Cet article est la propriété de www.developpez.com en tant qu'hebergeur ainsi que celle de Stephaneey en tant que redacteur, ce texte est donc protégé par le code de la propriété intellectuelle et est soumis à la réglementation en vigueur.
www.developpez.com ou son auteur se reserve le droit d'apporter des modifications sans préavis. Vous pouvez utiliser cet article comme bon vous semble, faire un lien depuis votre site Web, ou le copier en spécifiant l'auteur et la provenance (www.developpez.com) Le non respect de cette règle equivaudrait à faire une contrefaçon. La responsabilité de www.developpez.com, de l'un de ses membres, ou de la direction ne pourra etre engagé en cas de destruction partielle ou totale des données ou de l'architecture système ou logicielle inhérente à l'utilisation des ses logiciels.
Les logiciels decrits ici sont la propriété de leurs auteurs respectifs.
Responsables bénévoles de la rubrique Flash : Grégory Dumas et Brice Franzoia - Contacter par EMail :
Vos questions techniques : forum d'entraide Flash - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.