FLASH
Un livre d'or avec Flash MX, PHP et MySQL

Page 1 | 2

Réalisation d'une application dynamique faisant appel à trois technologies simples et puissantes.
 (10 octobre 2002 )
 

Point d'orgue de nos didacticiels Flash présentant ActionScript aux développeurs, cet article vous amènera à aborder l'utilisation conjointe de trois technologies dynamiques en une application simple. Il ne tiendra ensuite qu'à vous d'étendre les idées présentées ici pour des projets plus personnels.

Pour présenter une utilisation du trio Flash/PHP/MySQL, nous réaliserons donc une application de type "livre d'or" ou "guestbook", qui permettra au visiteur du site de laisser un message ou de lire les messages des autres visiteurs. Le fait de stocker les messages dans une base de données permet de mieux les gérer, voir de les effacer au cas par cas si besoin est.
Nous irons au plus simple ici: un minimum de champs dans la base de données, pas de partie "administration" pour gérer les messages, pas de pré-chargement des messages... A vous de construire vos idées sur cette base.

Nous supposons donc que votre table guestbook contient trois champs: id, nom, et message.

Dans Flash MX, créez trois calques: scripts, boutons et champs. Dans champs, sur la première image-clé, créez trois champs texte: deux champs de saisie avec pour noms d'occurence (et valeur de variable) nom et message, et un troisième champ, dynamique lui, nommé messages. Nous glissons sur les champs message et messages une barre de défilement tirée du panneau Composants.
Sur la première image-clé du calque boutons, créez trois boutons intitulés "Envoyer", "Effacer" et "Lire". Ces trois boutons comporterons les codes suivants:

(sur le bouton Envoyer)
on (release) {
  _root.envoyer();
}

(sur le bouton Effacer)
on (release) {
  _root.effacer();
}

(sur le bouton Lire)
on (release) {
  _root.lire();
}

Voilà pour le gros de l'interface et du code. Passons maintenant au code principal:

(sur la première image-clé du claque scripts)
//diverses initialisations
fichier = "guestbook.php");
chargement = new LoadVars();

chargement.onLoad = function() {
  _root.messages.text = "";
  for (i=1; i<=this.entrees; i++) {
    _root.messages.htmlText += "<b>Nom:</b> " + this["nom"+i] + "<br>";
    _root.messages.htmlText += "<b>Message:</b> " + this["message"+i];
    _root.messages.htmlText += "<b>---------------------</b><br>";
  }
  _root.messages.scroll = 0;
}

// fonction d'envoi du message
function envoyer() {
  if (nom != "" && message != "") {
    chargement.nom = nom;
    chargement.message = message;
    chargement.sendAndLoad(fichier, chargement);
    // après avoir envoyé le message,
    // on réinitialise les champs.
    effacer();
    Selection.setFocus(nom);
  }
}

function effacer() {
  _root.nom = "";
  _root.message = "";
}

function lire() {
  chargement.load(fichier);
}

// début du programme:
// on initialise les champs et
// on charge les messages.
effacer();
lire();

Le code PHP est relativement simple:

(fichier guestbook.php)
<?php
// Connexion à la base de données...
mysql_connect('127.0.0.1', 'root', '');
mysql_select_db('test');

// Si l'utilisateur envoi un nouveau message,
// on l'ajoute à la base de données.
if (isset($_POST['nom']) && isset($_POST['message']))
  {
  $nom = urlencode(rtrim($_POST['nom']));
  $message = urlencode(rtrim($_POST['message']));
  mysql_query("INSERT INTO guestbook SET nom = '$nom', message = '$message';");
  }

// renvoi la liste des entrées à Flash.
$resultat = mysql_query('SELECT * FROM guestbook ORDER BY id DESC;');

// on boucle et on ajoute chaque entrée à la chaîne de caractères
// que l'on enverra à Flash.
$i = 0;
$renvoi = "";
while($colonne = mysql_fetch_array($resultat))
  {
  $i++;
  $renvoi .= "nom".$i."=".$colonne["nom"]."&message".$i."=".$colonne["messages"]."&";
  }

// on ajoute le nombre d'entrées.
$renvoi .= "entrees=" . $i;

// on renvoi le tout à Flash.
echo $renvoi;
?>

Passons à la page suivante pour les explications du code...

Page 1 | 2

 
[ Xavier Borderie JDNet
 
Accueil | Haut de page