Envoyer formulaire SWF par mail PHP
On se propose de montrer comment envoyer les données recueillies depuis un formulaire SWF en utilisant la fonction mail dans un script PHP.
La création du formulaire a déjà été décrite. J'indiquerai seulement les adaptations à effectuer.
Création des Objets
Vous devrez réaliser quelquechose comme çà :
1 - Définissez les dimensions générales 640x480 ainsi que la couleur du fond #000066. Prenez un Frame Rate quelconque.
2 - C'est quasiment la même chose que pour l'exemple cité en premier. Le tout en images !
Le bouton Reset servira à nettoyer le formulaire. Le bouton Envoyer sert à informer le script PHP qui, lui, servira de facteur.
Tous les textes field_..... seront de type INPUT, réservés pour les entrées de données.
Je vais insister surtout sur la création du bouton radio qui permettra de sélectionner Mr ou Mme ou Melle.
Les boutons Monsieur, Madame, Maidchen seront créés pour permettre d'effectuer le choix de Civilité.
3 - Suivez bien les images de création et reproduisez.
Cadre = rectangle
Barre de Titre = rectangle
Titre = texte statique
Civilité = texte statique
4 - Bouton Monsieur :
On crée un texte et le cercle de fond.
texte statique
Cercle
5 - Les 2 sont regroupés en un bouton.
La couleur du texte est changée au survol (Over)
6 - Pour le bouton Madame, même procédé mais on change la position X :
texte : X = 228 cercle X = 215
7 - Pour le bouton Maidchen, même procédé mais on change la position X :
texte : X = 298 cercle X = 285
8 - On crée ensuite le point de sélection : c'est lui qui se déplacera quand un des 3 boutons sera cliqué.
Cercle
9 - Maintenant, les labels des champs :
Texte statique
10 - Tous les champs de saisie : (respectez bien le nom des variables dynamiques)
NOM
PRENOM
VILLE
SUJET
MESSAGE
11 - Bon, je vous laisse le soin de créer les boutons Envoyer et Reset tels qu'ils ont été décrits dans un précédent exemple. Changez juste le X et le Y. J'indiquerai les scripts respectifs plus loin.
Scripts SwishMax
Dans Outline, sélectionnez Scene_1, passez en Mode Expert. Entrez le script suivant :
function reset()
{ // réinitialise le bouton radio et les variables
dot._X = 154;
civil = "Monsieur";
nom= "";
prenom= "";
ville= "";
sujet= "";
message= "";
}
onLoad ()
{ // initialise le bouton radio
dot._X = 154; // centre du bouton radio sur Mr
civil = "Monsieur";
}
onFrame (20,afterPlacedObjectEvents) { stop(); }
Dans Outline, sélectionnez le bouton Reset. Entrez le script suivant :
on(press)
{
_root.reset();
gotoSceneandPlay("<current scene>",1);
}
Dans Outline, sélectionnez le bouton Envoyer. Entrez le script suivant :
on(press)
{ // les variables x...... sont récupérées par PHP
xcivil = civil;
xnom = nom;
xprenom = prenom;
xville = ville;
xsujet = sujet;
xmessage = message;
// envoie au script PHP
_root.loadVariablesNum("mail.php",0,'POST');
gotoSceneandPlay("<current scene>",1);
}
Dans Outline, sélectionnez le bouton Maidchen. Entrez le script suivant :
on (press)
{
_root.civil = "Melle"; // affecte une valeur à la variable
_root.dot._X= 285; // centre du bouton radio
}
Dans Outline, sélectionnez le bouton Madame. Entrez le script suivant :
on (press)
{
_root.civil = "Madame";
_root.dot._X= 215;
}
Dans Outline, sélectionnez le bouton Monsieur. Entrez le script suivant :
on (press)
{
_root.civil = "Monsieur";
_root.dot._X= 154;
}
Script PHP
Avec votre éditeur de texte favori, entrez :
<?
// xcivil, xnom, xprenom, xville, xsujet, xmessage viennent du SWF
$data = array();
$data[0] = $_POST['xcivil'] ;
$data[1] = $_POST['xnom'] ;
$data[2] = $_POST['xprenom'] ;
$data[3] = $_POST['xville'] ;
$data[4] = $_POST['xsujet'] ;
$data[5] = $_POST['xmessage'] ;
/* si tous les champs sont remplis, on continue on ne teste pas la civilité */
$checksum = 0;
for ($i=1; $i<6; $i++)
{
if ($data[$i] != "")
{ // enlève les balises html et se protège des car spéciaux
$data[$i] = AddSlashes(strip_tags($data[$i]));
$checksum++;
}
}
if ( $checksum == 5 )
{ // tout est rempli on expédie
$to = "moi@mondomaine.kekpart"; // remplacer par votre adresse mail
$expediteur = "Chepaqui"; // expéditeur pas défini !
/* D'autres en-têtes : errors, From cc's, bcc's, etc */
$headers = "From:".$expediteur."\r\n";
$headers .= "X-Sender: \n"; // .= signifie concaténation
$headers .= "X-Mailer: \n"; // mailer
$headers .= "X-Priority: 1\n"; // Message urgent!
$headers .= "Return-Path: \n"; // chemin de retour pour les erreurs
$headers .= 'MIME-Version: 1.0' . "\r\n"; // Type MIME
$headers .= "Content-Type: text/html; charset=iso-8859-1\n";
/* et hop, à la poste
On écrit,au format html, par exemple : Mr Jules César de Rome écrit */
$texte = "<html>".$data[0]." ".$data[2]." ".$data[1]." de ".$data[3]." écrit<br>";
// texte du message ( point = concaténation )
$texte .= "<br>".$data[5]."</html>";
// ??? votre hébergeur accepte-t'il la fonction PHP mail ???
@mail ($to, $data[4], $texte, $headers);// @ pour éviter affichage message d'erreur du serveur
} // fin if checksum
else echo '<SCRIPT language="JAVASCRIPT">alert("Veuillez remplir tous les champs");</SCRIPT>';
?>
Sauvez ce fichier sous le nom mail.php ( même nom que dans le script SwishMax ). Mettez tout çà dans le même répertoire du serveur. Vous pouvez tester en local si vous avez un serveur Apache et PHP installé.