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
|