Une page Contact avec Flash et PHP
2 août 2007 | flash, Tutoriels, web dynamique | 1 commentaire
Voici un petit tutoriel avec le fameux formulaire d’envoi de mail depuis flash.
Partie Flash
Pour ce formulaire, il faut créer 4 champs de texte (texte de saisie) destinés à recevoir les informations des visiteurs.
Les champs doivent impérativement être nommés (juste en-desssous du menu “texte de saisie”)
nom_txt
email_txt
sujet_txt
message_txt
On ajoutera aussi un champ de texte (texte dynamique) destiné à recevoir des messages d’erreur ou autres
resultat_txt
Vous créez ensuite un bouton nommé “envoi_btn”
Pour la suite, tout se passe dans un calque nommé “AS”, calque qui contiendra tout le code ActionScript de votre animation.
Voici le code inséré à l’image 1 de ce calque :
var objet_lv = new LoadVars();
resultat_txt.text = ""; // on efface le champ resultat_txt
function envoyer_mail() {
// on passe à l'objet LoadVars le contenu des différents champs de saisie attention : le nom des propriétés ajoutées à cet objet sera le nom de nos variables dans la partie php
objet_lv.nom = nom_txt.text;
objet_lv.email = email_txt.text;
objet_lv.sujet = sujet_txt.text;
objet_lv.msg = message_txt.text;
// recuperation des informations renvoyées par PHP
objet_lv.onLoad = function(succes) {
if (succes) {
resultat_txt.text = this.resultat; // resultat est le nom d'une variable renvoyée par php
} else {
resultat_txt.text = "erreur d'envoi de mail";
}
}
objet_lv.sendAndLoad("http://www.monsite.com/mail.php",
objet_lv, "POST");// requete vers la page php
}
// le code pour le bouton d'envoi
envoi_btn.onRelease = function() {
envoyer_mail();
}
stop();
Partie PHP
Voici le contenu du fichier mail.php appelé depuis Flash
<?php
// récupération des variables envoyées depuis Flash
$nom = $_POST['nom'];
$email = $_POST['email'];
$sujet = $_POST['sujet'];
$msg = $_POST['msg'];
// une fonction pour nettoyer les textes
function nettoyer($texte)
{
$texte = utf8_decode($texte); // Convertit une chaîne UTF-8 en ISO-8859-1
$texte = trim($texte); // supprime les espaces du début et de la fin
$texte = strip_tags($texte); // on supprime les tags html
$texte = nl2br($texte);// on tranforme les retours à la ligne en <br>
return $texte;
}
$sujet = nettoyer($sujet);
$msg = nettoyer($msg);
$headers = "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
mail("
Cet e-mail est protégé contre les robots collecteurs de mails, votre navigateur doit accepter le Javascript pour le voir
", $sujet, $msg, $headers) ; // on renvoie la variable resultat au format utf8 pour Flash
echo utf8_encode("resultat=votre mail a bien été envoyé");
?>
Et voilà
Bien sûr, ce petit tutoriel ne demande qu’à être amélioré, par exemple on ne teste pas ici si le visiteur a rempli les différents champs ; on ne supprime pas non plus le texte saisi si le mail a bien été envoyé.

Merci pour ce tuto.