Envoyer données 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 été décrite ICI. Un autre exemple a été étudié là.
J'indiquerai seulement les adaptations à effectuer.
Partie 1 : 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.
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 ICI
Changez juste le X et le Y.
J'indiquerai les scripts respectifs plus loin.
Partie 2 : 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;
}
Partie 3 : 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 .= "Content-Type: text/html; charset=iso-8859-1\n"; // Type MIME
/* 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é )
|