Dans ce tutoriel, vous apprendrez à faire un formulaire d'envoi de mail en Flash. Outre l'aspect mxml, ce tutoriel vous permettra de vous principalement d'aborder l'aspect intéraction entre Flash et PHP. Il existe également une autre méthode qui consiste à utiliser le composant HTTPService de Flex.
Le composant mxml
Voyons en premier lieu le formulaire en utilisant les composants de Flex.
< ?xml version="1.0" encoding="utf-8"?>
< mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
backgroundGradientColors="[0x000000,0x323232]">
< mx:Panel title="Un simple formulaire de contact">
< mx:Form>
< mx:FormItem label="Votre nom et prénom" required="true">
< mx:TextInput id="username"/>
< /mx:FormItem>
< mx:FormItem label="Votre adresse mail" required="true">
< mx:TextInput id="mail"/>
< /mx:FormItem>
< mx:FormItem label="Sujet" required="true">
< mx:TextInput id="subject"/>
< /mx:FormItem>
< mx:TextArea id="content" width="100%" height="150"/>
< mx:Box width="100%" horizontalAlign="center">
< mx:Button id="send" label="Envoyer" click="onValid(event)"/>
< /mx:Box>
< /mx:Form>
< /mx:Panel>
< /mx:Application>
Le code ActionScript
< mx:Script>
< ![CDATA[
import mx.controls.Alert;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.events.Event;
private function onValid(e:Event):void{
var name : String = username.text;
var mail : String = mail.text;
var subject : String = subject.text;
var content : String = content.text;
var isName : Boolean = name.length != 0;
var isMail : Boolean = mail.length != 0;
var isSubject : Boolean = subject.length != 0;
var isContent : Boolean = content.length != 0;
if(isName && isMail && isSubject && isContent) {
var chargeur:URLLoader = new URLLoader ();
var _vars : URLVariables = new URLVariables();
_vars.name = name;
_vars.mail = mail;
_vars.subject = subject;
_vars.content = content;
var adresse:URLRequest = new URLRequest("./contact.php");
adresse.method = URLRequestMethod.POST;
adresse.data = _vars;
chargeur.load(adresse);
chargeur.addEventListener(Event.COMPLETE, finDuChargement);
}
else {
Alert.show("Les champs marques par une * sont obligatoire.", "Information");
}
}
private function finDuChargement(event:Event):void {
var contenu : XML = XML(event.target.data);
if(contenu=="true") {
Alert.show("Message envoyé avec succès.","Information");
}
else {
Alert.show(" Le mail n'a pas pu être envoyé suite à une erreur. Veuillez réessayer plus tard.", "Erreur");
}
}
]]>
< /mx:Script>
Le fonction onValid() va récuperer les données présentes dans le formulaire, va vérifier si elles sont correcte (non null), puis va les envoyer au script PHP.
La fonction finDuChargement() récupère et traite la réponse de PHP pour avertir l'utilisateur du bon déroulement (ou pas) du formulaire.
Le script PHP
if( isset($_POST['name']) && isset($_POST['mail']) && isset($_POST['content']) && isset($_POST['subject']) ){
$headers = 'From: monsite.fr'."\r\n";
$headers .= 'Mime-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";
$headers .= "\r\n";
$nom = $_POST['name'];
$mail = $_POST['mail'];
$sujet = $_POST['subject'];
$message = $_POST['content'];
$destinataire = 'mail@monadress.fr';
$objet = $sujet;
$mess = 'Nom : '.$nom.'
Sujet : '.$sujet.'
Mail : '.$mail.'
Message : '.$message;
mail($destinataire,$objet,$mess,$headers);
echo 'true';
}
else
echo 'false';
On envoit le mail, et on retourne la réponse pour que l'utilisateur sache si le mail a bien été envoyé.
Une petite capture pour terminer :

Tweet This!
Write a comment
Posts: 1
Reply #1 on : Mon April 12, 2010, 14:34:26