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èneSur 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 FlashDivisons 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)
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 :
//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 :
monChamp.onSetFocus=function () {
trace(monChamp.text);
if(monChamp.text=='Entrez votre login...')
monChamp.text='';
}
3ème étape : Création du script PHPEn 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" :
CREATE TABLE `test` (
`id` int(11) NOT NULL auto_increment,
`login` varchar(40) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
<?
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 xDVOila 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)) :

