[FLASH] Form mail php : Code php 2/2 Par Burnside
le mardi 17 mars 2009, 10:00
Voici comment réaliser un formulaire mail en flash et php, partie 2.Bonjour,
1) Réouvrir le fichier du tuto précédent.
2) Faites F9 afin de voir le code actionscript
3) Nous allons placer le code qui va effacer le message d'erreur, placer le code au-dessous des variables ou au-dessus du code du bouton "envoie" :
4) Maintenant nous allons préparer la fonction qui nettoie le formulaire :
5) Sur le bouton :bt_clear, on ajoute vider()
bt_clear.onPress = function() {
vider()
this.bt_clear_mc.colorTo(btOut,1,"easeOutExpo"); };
6) Maintenant le code pour l'envoi des données notre page PHP:
7) Maintenant la création de la fonction erreur :
8 ) Et pour terminer le code php : créez un fichier php soit via dreamweaver ou notepad ou bbedit au choix, et copiez/collez le code suivant :
9) Sauvez votre fichier dans le même répertoire que votre fichier flash et nommez-le "mail.php".
10) Il ne vous reste plus qu'à uploader vos fichiers sur le serveur et tester.
Bàv,
Burnside.
1) Réouvrir le fichier du tuto précédent.
2) Faites F9 afin de voir le code actionscript
3) Nous allons placer le code qui va effacer le message d'erreur, placer le code au-dessous des variables ou au-dessus du code du bouton "envoie" :
//reset du champ erreur si un des champs est modifié
txt_nom.onChanged = txt_email.onChanged = txt_sujet.onChanged = txt_message.onChanged.onChanged=function () {
txt_erreur.text = "";
};
4) Maintenant nous allons préparer la fonction qui nettoie le formulaire :
// Fonction pour nettoyer tous les champs
function vider() {
txt_nom.text = "NOM";
txt_email.text = "EMAIL";
txt_sujet.text = "SUJET";
txt_message.text = "MESSAGE";
mc_nom.alphaTo(100,1,"easeOutExpo");
mc_email.alphaTo(100,1,"easeOutExpo");
mc_sujet.alphaTo(100,1,"easeOutExpo");
mc_message.alphaTo(100,1,"easeOutExpo");
};
5) Sur le bouton :bt_clear, on ajoute vider()
bt_clear.onPress = function() {
vider()
this.bt_clear_mc.colorTo(btOut,1,"easeOutExpo"); };
6) Maintenant le code pour l'envoi des données notre page PHP:
//Fonctions des boutons send et clear
bt_envoie.onPress = function() {
var senddata = new LoadVars();
//si aucun champ n'est rempli.
if ((txt_nom.text == "NOM") or (txt_email.text == "EMAIL") or (txt_sujet.text == "SUJET") or (txt_message.text == "MESSAGE")) {
//Appel de la fonction erreur
error("Merci de remplir tous les champs");
this.bt_envoie_mc.colorTo(btOut,1,"easeOutExpo");
}
else {
senddata.nom = txt_nom.text;
senddata.email = txt_email.text;
senddata.sujet = txt_sujet.text;
senddata.mesage = txt_message.text;
senddata.sendAndLoad("mail.php", senddata, "POST");
//on vide le formulaire
vider();
//on signale que le mail est parti.
error("Message envoyé");
this.bt_envoie_mc.colorTo(btnOut,1,"easeOutExpo");
}
};
7) Maintenant la création de la fonction erreur :
//Fonction pour afficher les erreurs
function erreur(txt){
txt_erreur.text = txt;
};
8 ) Et pour terminer le code php : créez un fichier php soit via dreamweaver ou notepad ou bbedit au choix, et copiez/collez le code suivant :
<?php
$nom = $_POST["nom"];
$mail = $_POST["email"];
$sjt = $_POST["sujet"];
$msg = $_POST["mesage"];
$contentmsg = "Nom: ".$nom."\nEmail: ".$mail."\nSujet: ".$sjt."\nMessage: \n".$msg;
//Variables pour les mails
$subjectrecep = "Thank you for your message!";
$contentrecep = "You've used my contact form and it works perfectly! Your message was sent. Thank you!";
// Mail configuration
$to="abc@abc.be"; //votre adresse mail
$subject="".$sjt."";
$headers .= "From: ".$mail."\n";
$headers2 .= "From: ".$to."\n";
//envoi des mails
mail($to,$sjt,$contentmsg,$headers);
mail($mail,$subjectrecep,$contentrecep,$headers2);
?>9) Sauvez votre fichier dans le même répertoire que votre fichier flash et nommez-le "mail.php".
10) Il ne vous reste plus qu'à uploader vos fichiers sur le serveur et tester.
Bàv,
Burnside.













Ziki
Dailymotion
Flickr
Technorati
Twitter
1. Le mardi 17 mars 2009, 10:09 par Steuf
Le point 10 est à revoir :
10°/ Il ne vous reste plus qu'à sécuriser la partie PHP, uploader vos fichiers sur le serveur et tester.
Dans l'état actuel, le script ne doit pas être utilisé dans un environnement de production plusieurs raisons :
- Possibilité de spammer le formulaire (Pas de crypto, donc un jeu d'enfant à boter)
- Une faille immonde permettant de modifier les entêtes des mails envoyés.
Bot + Modification des entêtes = Catastrophe. Donc il me semble important d'indiquer qu'en l'état, le script ne doit pas être utiliser en production
2. Le mardi 17 mars 2009, 10:45 par Erwan
Tout a fait d'accord avec toi Steuf!
De plus, flash ne recupere pas le feedback envoyé par php. Ca veut dire que s'il y a une erreur lors de l'envoie du mail par exemple, l'utilisateur n'en sera meme pas averti...
3. Le mardi 17 mars 2009, 15:59 par Emacs
Ouch c'est quoi ce code PHP ultra faillible !!! Tu as appris à envoyer des mails en PHP avec quoi ? Sincèrement refais ton code PHP en utilisant une librairie d'envoi de mail secure comme SwiftMailer 4 car là tu montres tout ce qu'il ne faut pas faire lorsque l'on doit envoyer des mails...
4. Le mercredi 18 mars 2009, 08:59 par jarodxxx
Je rapelle que le tuto de burnside vise a apprendre le formulaire flash, et non pas l'envoie de mail
5. Le mercredi 18 mars 2009, 09:06 par Hugo
@Jarodxxx : dans ce cas, on évite de montrer le code PHP et on fait comme si le développeur savait le faire plutôt que de montrer un code horrible non sécurisé que certains recopieront bêtement sans en comprendre ni le sens ni la dangerosité...
6. Le mercredi 18 mars 2009, 20:50 par Palleas
> Je rappelle que le tuto de burnside vise a apprendre le formulaire flash, et non pas l'envoie de mail
Ouais, enfin même le flash est daubé, donc bon o/
7. Le jeudi 19 mars 2009, 11:58 par sam
Et bien c'est du propre, a quoi ca sert de faire un tuto déjà vu des milliers de fois si en plus c'est pour servir du code de débutant ( aussi bien AS que PHP ), inutile donc et mm contre productif finalement.
Il ne faut pas faire des billets ou autre tuto "technique" juste pour remplir son blog, il faut que ca ait une valeur ajouter.
Tu te discrédite en postant de telles singeries.
8. Le vendredi 28 août 2009, 11:59 par ramirou
Bien ton site^^ pour les tuto ce qui est génial c'est un exemple à chaque fois pour voir le rendu final autrement que par un bête screenshot