Formulaire en flash et php
Résolu
Bonjour,
je vous explique mon probleme : je suis entrin de faire un site web en flash et je suis entrin d'installer un formulaire de contact j''ai trouvé un site qui en propose un, mais je n'arrive pas à le faire fonctioné corectement, l'animation flash marche corectement mais je ne recoi pas l'Email après vérification j'ai fais tous ce qui est demander, faut t'il un serveur Mail ? si c'est le cas ou en trouvé un et comment le configurer merci bocoup voici le code fourni par le site que j'ai trouvé :
Dans ce tutorial nous allons nous pencher sur la création d'un formulaire de contact très utile dans un site en flash.
Cependant, il n'existe aucune fonction prédéfinie dans Flash pour envoyer des mails. Une des solutions pourrait donc être de rediriger le visiteur vers un formulaire html, mais cela pourrait nuire à l'homogénéité du site. Ainsi, nous allons plutôt nous tourner vers l'interaction entre Flash et php.
Tout d'abord, créez un nouveau fichier et placez-y deux calques, nommez le premier "formulaire" et le second "controle".
Sur le calque "formulaire" créez les champs de textes de saisie "mail", "sujet", "message", un bouton qui nous permettra d'envoyer le mail et un autre permettant de vider les champs, et enfin un champ de texte dynamique sans bordures.
Paramétrez les champs de texte de saisie de la façon suivante :
Veillez à cocher les cases "sélectionnable" et "bordure". Pour le champ "message" choisissez l'option "multiligne".
Dans le champs "var" entrez un nom de variable différent pour chaque champs, ici : "mail", "sujet" et "msg".
Ces variables vont correspondre à des variable php que l'on passera en paramètres de la fonction mail().
Donnez également un nom de variable à votre champs de texte dynamique, par exemple : "error".
Sur le calque "controle", placez le script suivant sur la première image du scénario :
// On initialise les variables à 0
mail = "";
sujet = "";
msg = "";
error = "";
// On vérifie le format du mail
// Il faut au moins un caractère avant le @ suivi de 2 caractère minimum
// Puis un point et encore 2 caractère au moins
function verifMail() {
if (mail.indexOf("@")>0) {
if ((mail.indexOf("@")+2)<mail.lastIndexOf(".")) {
if (mail.lastIndexOf(".")<(mail.length-2)) {
return true;
}
}
} else {
return false;
}
}
// On vérifie que les champs ne sont pas vides
function verifChamps() {
if ((mail != "") && (sujet != "") && (msg != "")) {
return true;
} else {
return false;
}
}
// On affiche les message d'erreur lorsque l'on clic sur le bouton envoi
// Si tout est bon on envoi le mail
function envoyer() {
if ((verifChamps() == true) && (verifMail() == true)) {
error = "Votre mail a été envoyé avec succès.";
loadVariablesNum("send.php", 0, "POST");
}
if ((verifChamps() == false) && (verifMail() == true)) {
error = "Veuillez renseigner tous les champs.";
}
if ((verifChamps() == true) && (verifMail() == false)) {
error = "Le format de l'adresse est incorrect.";
}
if ((verifChamps() == false) && (verifMail() == false)) {
error = "Veuillez renseigner tous les champs.";
}
}
Sur le bouton "envoyer" placez :
// On appel la fonction envoyer() définie dans le calque control
on (release) {
_root.envoyer();
}
Et sur le bouton "reset" :
// On réinitialise toutes les variables texte à 0
on (release) {
var mail = "";
var sujet = "";
var msg = "";
var error = "";
}
Voilà pour la partie Flash, passons maintenant à la partie php.
Créez une page send.php et mettez y le code suivant :
<?php
mail("Votre_adresse_email","$sujet","$msg","From : $mail\n");
?>
Quelques explications :
On utilise la fonction mail() de php pour envoyer un mail à l'adresse spécifiée, les différents champs seront remplis par le texte stocké dans les différentes variables.
Le paramètre "From : $mail\n" permet d'ajouter un entête au mail contenant l'adresse de l'expéditeur, sans cet entête vous récupèreriez l'adresse du serveur mail.
Placez maintenant votre fichier swf final ainsi que le fichier send.php dans le même répertoire chez votre hébergeur.
Les différentes fonctions de vérification peuvent être testées sur votre machine, par contre la fonction mail ne fonctionnera qu'une fois l'ensemble uploadé sur un serveur web apache ... à moi que vous ne possédiez chez vous un serveur mail.
Voilà, tout devrait fonctionner ...
je vous explique mon probleme : je suis entrin de faire un site web en flash et je suis entrin d'installer un formulaire de contact j''ai trouvé un site qui en propose un, mais je n'arrive pas à le faire fonctioné corectement, l'animation flash marche corectement mais je ne recoi pas l'Email après vérification j'ai fais tous ce qui est demander, faut t'il un serveur Mail ? si c'est le cas ou en trouvé un et comment le configurer merci bocoup voici le code fourni par le site que j'ai trouvé :
Dans ce tutorial nous allons nous pencher sur la création d'un formulaire de contact très utile dans un site en flash.
Cependant, il n'existe aucune fonction prédéfinie dans Flash pour envoyer des mails. Une des solutions pourrait donc être de rediriger le visiteur vers un formulaire html, mais cela pourrait nuire à l'homogénéité du site. Ainsi, nous allons plutôt nous tourner vers l'interaction entre Flash et php.
Tout d'abord, créez un nouveau fichier et placez-y deux calques, nommez le premier "formulaire" et le second "controle".
Sur le calque "formulaire" créez les champs de textes de saisie "mail", "sujet", "message", un bouton qui nous permettra d'envoyer le mail et un autre permettant de vider les champs, et enfin un champ de texte dynamique sans bordures.
Paramétrez les champs de texte de saisie de la façon suivante :
Veillez à cocher les cases "sélectionnable" et "bordure". Pour le champ "message" choisissez l'option "multiligne".
Dans le champs "var" entrez un nom de variable différent pour chaque champs, ici : "mail", "sujet" et "msg".
Ces variables vont correspondre à des variable php que l'on passera en paramètres de la fonction mail().
Donnez également un nom de variable à votre champs de texte dynamique, par exemple : "error".
Sur le calque "controle", placez le script suivant sur la première image du scénario :
// On initialise les variables à 0
mail = "";
sujet = "";
msg = "";
error = "";
// On vérifie le format du mail
// Il faut au moins un caractère avant le @ suivi de 2 caractère minimum
// Puis un point et encore 2 caractère au moins
function verifMail() {
if (mail.indexOf("@")>0) {
if ((mail.indexOf("@")+2)<mail.lastIndexOf(".")) {
if (mail.lastIndexOf(".")<(mail.length-2)) {
return true;
}
}
} else {
return false;
}
}
// On vérifie que les champs ne sont pas vides
function verifChamps() {
if ((mail != "") && (sujet != "") && (msg != "")) {
return true;
} else {
return false;
}
}
// On affiche les message d'erreur lorsque l'on clic sur le bouton envoi
// Si tout est bon on envoi le mail
function envoyer() {
if ((verifChamps() == true) && (verifMail() == true)) {
error = "Votre mail a été envoyé avec succès.";
loadVariablesNum("send.php", 0, "POST");
}
if ((verifChamps() == false) && (verifMail() == true)) {
error = "Veuillez renseigner tous les champs.";
}
if ((verifChamps() == true) && (verifMail() == false)) {
error = "Le format de l'adresse est incorrect.";
}
if ((verifChamps() == false) && (verifMail() == false)) {
error = "Veuillez renseigner tous les champs.";
}
}
Sur le bouton "envoyer" placez :
// On appel la fonction envoyer() définie dans le calque control
on (release) {
_root.envoyer();
}
Et sur le bouton "reset" :
// On réinitialise toutes les variables texte à 0
on (release) {
var mail = "";
var sujet = "";
var msg = "";
var error = "";
}
Voilà pour la partie Flash, passons maintenant à la partie php.
Créez une page send.php et mettez y le code suivant :
<?php
mail("Votre_adresse_email","$sujet","$msg","From : $mail\n");
?>
Quelques explications :
On utilise la fonction mail() de php pour envoyer un mail à l'adresse spécifiée, les différents champs seront remplis par le texte stocké dans les différentes variables.
Le paramètre "From : $mail\n" permet d'ajouter un entête au mail contenant l'adresse de l'expéditeur, sans cet entête vous récupèreriez l'adresse du serveur mail.
Placez maintenant votre fichier swf final ainsi que le fichier send.php dans le même répertoire chez votre hébergeur.
Les différentes fonctions de vérification peuvent être testées sur votre machine, par contre la fonction mail ne fonctionnera qu'une fois l'ensemble uploadé sur un serveur web apache ... à moi que vous ne possédiez chez vous un serveur mail.
Voilà, tout devrait fonctionner ...
Configuration: Windows XP Internet Explorer 6.0
44 réponses
Résumé de la discussion
Un formulaire de contact en Flash ne peut pas envoyer d’email directement et nécessite une passerelle serveur, généralement un script PHP utilisant mail(). Le tutoriel suggère d'assembler un formulaire Flash et un script PHP (send.php) qui reçoit les données par POST et utilise mail() pour envoyer l'email, avec vérification du format du mail et des champs obligatoires. En pratique, la solution nécessite un hébergement capable d’exécuter PHP et d’envoyer des mails via le serveur SMTP, et la mise en œuvre inclut des vérifications côté client et des retours d’erreur.
-
salut a tous,
je voudrais aussi inserer un formulaire en flash est ce que je doit suivre ce tuto? -
Bonjour,
Peut-être que je suis un peu hors-sujet mais je voudrais toujours dire qu'il y a d'excellents tutoriels PHP sur YouTube de quelqu'un qui explique très bien et tout ce qu'il écrit. Voilà le lien au cas où vous serez intéressé :
www.youtube.com/phpacademy
Voilà bonne visite ;) -
Ok c'est très bien tout cela...mais quelqu'un sait comment rajouter la possibilité d'uploader un fichier avec le message (une piece jointe). Avec un Flash + un .php ??
-
Bonjour,
J'ai bien lu vos échanges et j'ai pas tout pigé; moi je bloque en fait pour éditer le lien d'un bouton "mail" (avec un mailto nativement intégré dedant) vers un formulaire tout frais tout beau (munis de son php) que j'ai récupéré et que j'ai inséré dans mon fla de base.
Je galère à éditer ce bouton pour qu'il m'ouvre le formulaire correctement. Le formulaire est calé dans le fla de base avec une image clé et je n'arrive pas à l'appeler correctement.
Il doit pas y avoir grand chose à recaler mais est-ce que quelqu'un pourrait me donner la procédure à suivre pour que le formulaire s'ouvre et qu'il se referme après édition?
Mes sources sont les suivantes:
mon fla: http://www.aerostudio.fr/temp/
le formulaire de contact sympa : http://www.flashmo.com/preview/flashmo_188_chrome_black
Merci à toute la communauté, j'offre une bibine à celui qui me trouvera la solution! ;-)
A+
Antoine -
euh... je corrige.
Lorsque j'utilise un programme mail comme "Thunderbird", c'est le nom de l'utilisateur qui apparaît et non plus celui du du serveur de mon site.
inalement je pense que le problème se pose seulement pour ceux qui consulte des boîtes aux lettres en ligne (msn ou orange) sans utiliser de programme mail.
Mais quand même...
Avez vous une solution pour ça?
Merci. -
Bonjour,
Merci beaucoup pour ce tutoriel.
Je l'ai essayé, il marche.
Mon problème est que malgré avoir fait un copier coller du code php
<?php
mail("mon adresse","$sujet","$msg","From : $mail\n");
?>
et l'importance du "From : $mail\n", ce dernier ne semble pas efficace...
Je m'envoie un courrier depuis une de mes autres adresses pour faire le test.
Trente secondes plus tard, je vais relever le courrier que je e suis envoyé.
Ce que je vois en premier, c'est que ce message provient d'un nom qui est relatif à mon serveur (online.net)
ce message semblant de provenance mystérieuse pourrait se perdre dans les courrier "indésirables"...
Je voudrais remédier à ce problème pour que l'adresse de l'utilisateur s'affiche et non pas celle de mon serveur, quelle horreur lol !
Je suis tout de même ravie d'arriver à le faire fonctionner globalement, c'est juste ce problème de "From : $mail\n" inopérant.
Merci d'avance. -
Coucou Rad Zone,
en fait pour le fichier swf "Origine", c'est plutôt bien qu'il apparaisse dans la zone "commentaire". Car si l'on gère plusieurs retours de formulaires différents, cela permet de se remettre en tête de quel projet il s'agit et de localiser le dossier pour les modifs.
Donc je vais garderle script tel quel. Cela va au-delà de mes espérances!!
:))
J'avais raison de garder "espoir".
A bientôt -
ContributeurOK :-))
je mangeais ;-)
pour le retour du lien du swf dans ta reception email cela vient du$headers .= 'Return-Path: <'.$mailReponse.'>'."\n";
qui te rvois l adress du swf ! iil faudrais fignoler le php ;-)) mais
c' est pas trop mon truc php :-) -
C'EST BON!!!!! SUPERRRRRRRRRRR!!!
Ca marche!!!
J'avais oublié d'intégrer le bloc sur le formatage du champs "commentaire" et du coup je n'avais pas non plus le message pour "l'inscription à la lettre"!
Juste une dernière chose : Dans le cadre du commentaire, avec les infos "nom, prenom ect. renseignées , pourquoi apparaît aussi l'adresse http où j'ai placé mon fichier ? Comme:
"Origine : http://XXXXXX.free.fr/NewForm/formWeb.swf
En tout cas, merci beaucoup Rad Zone, c'est le premier formulaire que j'arrive à finaliser depuis 3 mois !
Merci encore. -
pour plus d'infos, voilà le message que renvoie le fichier "envoyer_mail.php" quand je clic dessus (au dessus du fichier swf:
erreurPHP=Variable 'sujet' non transmise Variable 'message' non transmise Variable 'message' non transmise Variable 'expediteur' non transmise Variable 'mailReponse' non transmise
Je comprends de moins en moins... -
oui, j'ai bien
var taCommentaire:TextArea = this.commentaire_ta;
et j'ai bien nommé l'occurrence "commentaire" :
commentaire_ta
Qu'est-ce que je peux faire de plus ? -
Contributeurcela semble dire que tu n a pas donner d occurence ou une mauvaise au champ texte dans ton fla !
tu a bien ca pour ta zone de commentaire dans ton fla ?
var taCommentaire:TextArea = this.commentaire_ta;
-
En effet, j'avais décommenter le bloc... Je l'ai enlevé et
Ouiiiiiiiiiiiiii!!! C'est mieux!! J'ai bien le message "l'envoi s'est terminé avec succès".
Sauf le champs commentaire... j'ai "undefined" qui s'affiche à la place de mon message de test.
Qu'est-ce que j'ai loupé?
J'avoue qu'après 4 ou 5 heures sur ce formulaire... -
Contributeurtu est sur que tu n a pas decommenter ces 4 lignes ??
parceque c est ca que tu vois et tu ne devrais pas !!!! enleve les carrement
# /* Paragraphe à decommenter pour tester le script php seul, sans le fla # $_POST['sujet'] = 'formulaire Test'; # $_POST['messageHtml'] = '<html><body>Salut<br /> mon cher<br /><br />Bye</body></html>'; # $_POST['messageText'] = "Salut mon cher Bye"; # $_POST['expediteur'] = "expediteur@fai.fr"; # $_POST['mailReponse'] = "expediteur@fai.fr"; # */
-
non, j'ai juste changé le nom du dossier : j'ai mis NewForm/envoyer_mail.php au lieu de php/envoyer_mail.php. C'est tout!
-
Contributeurtu n a pas modifie le php ???
a part ton mail bien sur -
Comment je fais pour le savoir.
Je passe mes fichiers via FTP sur mon espace Free mais j'ai la livebox (orange). Lequel est mon fournisseur d'accès?
Comme je te l'ai dis, j'ai bien reçu en retour un mail dans ma boîte mais celui qui correspond à:
$_POST['sujet'] = 'formulaire Test';
$_POST['messageHtml'] = '<html><body>Salut<br /> mon cher<br /><br />Bye</body></html>';
$_POST['messageText'] = "Salut mon cher Bye";
en retour d'erreur. -
Comment je fais pour le savoir.
Je passe mes fichiers via FTP sur mon espace Free mais j'ai la livebox (orange). Lequel est mon fournisseur d'accès?
Comme je te l'ai dis, j'ai bien reçu en retour un mail dans ma boîte mais celui qui correspond à:
$_POST['sujet'] = 'formulaire Test';
$_POST['messageHtml'] = '<html><body>Salut<br /> mon cher<br /><br />Bye</body></html>';
$_POST['messageText'] = "Salut mon cher Bye";
en retour d'erreur. -
ContributeurLA fonction mail() est bien active chez ton hebergeur ??
-
Bonsoir Rad Zone,
d'abord merci pour ta réponse si rapide et ... énergique! J'ai fait exactement comme indiqué dans ton tuto... mais j'ai reçu le mail d'erreur (à la fin du script PHP) à mon adresse mail... J'ai donc une erreur d'envoi dans le script php...
J'ai relu tous les codes, ligne par ligne, syntaxe par syntaxe... en vain. Je ne comprends pas.
Et toi ?
Merci pour ta réponse.
- 1
- 2
- 3
Suivant