Association Shodaria : Forum de la communauté, aide et création de jeux gratuits en ligne
Nouvelles: Ouverture du forum de l'association Shodaria !
 
*
Bienvenue, Invité. Veuillez vous connecter ou vous enregistrer. 07 Janvier 2009, 17:34


Connexion avec identifiant, mot de passe et durée de la session


« sujet précédent | | sujet suivant »
Pages: [1] Imprimer
Auteur Sujet: Apprendre à envoyer et recevoir des variables de Flash vers PHP  (Lu 412 fois)
dante
Administrator
Sr. Member
*****

Karma: 21
Hors ligne Hors ligne

Messages: 380



Voir le profil WWW Courriel
Apprendre à envoyer et recevoir des variables de Flash vers PHP
« le: 15 Octobre 2006, 20:28 »

Pour cela, nous allons procéder par étape, mais avant tout, pour bien comprendre
nous allons donc créer un champ de texte qui nous permettra de rentrer une valeur,
et de l'envoyer vers notre script Flash. Ce script vérifiera que login n'est pas
présent dans la base de données MySQL, et l'insèra dans ce cas, sinon non.

Ensuite, il nous faudra évidemment un simple bouton pour valider notre champ et envoyer la valeur.
Puis un dernier champ texte qui affichera le résultat des requêtes.


1ère étape  : Création des objets de la scène

Sur flash, il existe des composants, c'est à dire des objets tout fait, et il y a un champ de type "input" appelé "TextInput". On va l'appelé "monChamp", voici ses propriétés :




L'attribut text contiendra en fait le texté d'initialisation, mettez exactement le même, ceci nous permettra de voir plus bas une autre petite astuce.
Insérez ensuite un bouton, pour cela prenez le composant appelé : "Button" et mettez

lui les propriétés suivantes :



Puis pour finir, insérer un champ de texte dynamique, et appelé le "erreur".
Voici ce que ca devrait donner :




2ème étape : Création du code Flash

Divisons notre code en deux parties ! Avant tout analysons le problème, il nous faut donc une variable qui nous permettra d'envoyer, une pour recevoir! Pour plus de souplesse par la suite nous allons également créer une fonction pour gérer la réception des variables, une pour l'envoie.

Voici la déclaration et la fonction qui chargera les variables PHP (on définit la variable "erreur" qui sera renvoyée par le script)

Code:
sendChamp = new LoadVars(); // variable pour envoyer les var vers PHP
loadChamp = new LoadVars(); // pour récupérer les var du PHP
//
loadChamp.onLoad = function() {
erreur.text='';
// on affiche l'erreure :
if(loadChamp.erreur==1)
erreur.text='Ce login existe déjà';
else
erreur.text='Login enregistré';
};

La fonction qui envoie les variables ressemblera à ça :


Code:
//lorsqu'on clique sur le bouton envoyer.
bton_envoyer.onRelease= function () {
// on stocke la variable contenu dans le champ appelé "monChamp"
sendChamp.login = monChamp.text;
sendChamp.sendAndLoad("loadvar.php", loadChamp);
}


Donc, par la suite, si il y a plus de variables, il suffira de rajouter des lignes de type "sendChamp.maNouvelleVar=maNouvelleVar.text".

Maintenant, nous allons faire en sorte que lorsque le champ est sélectionné pour la 1ère fois, qu'il se mette à blanc, voici ce qu'on peut faire :


Code:
monChamp.onSetFocus=function () {
trace(monChamp.text);
if(monChamp.text=='Entrez votre login...')
monChamp.text='';
}



3ème étape : Création du script PHP

En fait il ici savoir que pour renvoyer une variable à Flash il faut utiliser le "&" devant la variable. Les variables sont envoyées à PHP sous forme de $_POST.
Le code suivant est un code assez basique que je me passerai de commenter, les commentaires insérés sont suffisants.
La base de données s'appelle test, et contient deux champs : "id" et "login" :

Code:
CREATE TABLE `test` (
  `id` int(11) NOT NULL auto_increment,
  `login` varchar(40) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
Code:



Code:
<?
session_start();
//on peut ici stocker notre valeur envoyée par Flash dans une variable de Session
$_SESSION['slogin']=$_POST['login'];
// ou bien on peut faire un test sur une base de données, et une insertion dans le cas positif
//connection à la base
$dbhost = "localhost";
$dbuname = "root";
$dbpas = "";
$dbname = "maBase";
$base = mysql_connect ($dbhost, $dbuname, $dbpas);
mysql_select_db ($dbname, $base) ;
//**************************************
// on test si le login existe déja
$sql='SELECT id FROM test WHERE login="'.$_SESSION['slogin'].'"';
$req = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($req)==1) {
$erreur=1; //erreure, on affichera dans le flash la phrase d'erreure

} else {
// on insere dans la base.
$sql='INSERT INTO test VALUES("","'.$_SESSION['slogin'].'")';
$req = mysql_query($sql) or die(mysql_error());
$erreur=0;
}
mysql_close();
//on envoie la var a Flash
?>
&erreur=<?
echo $erreur;
?>



4ème étape : Test xD

VOila juste pour tester (par contre c'est du Php, il vous faut donc un serveur local (easyPhp), ou bien de le tester sur un hébergeur équivalent (presque tous)) :



Journalisée
Pages: [1] Imprimer 
« sujet précédent | | sujet suivant »
Aller à:  

Propulsé par MySQL Propulsé par PHP Association Shodaria : Forum de la communauté, aide et création de jeux gratuits en ligne | Powered by SMF 1.0.9.
© 2001-2006, Lewis Media. All Rights Reserved.

phpMyVisites
XHTML 1.0 Transitionnel valide ! CSS valide ! Dilber MC Theme by HarzeM