Rechercher : dans
Par :

Formulaire en flash et php

Dernière réponse le 25 jui 2009 à 00:05:43 Good Canular, le 26 sep 2007 à 19:44:52 
 Signaler ce message aux modérateurs

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 ...

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « formulaire en flash et php » dans :
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...

2

lalik77, le 4 mar 2008 à 17:44:56

Moi tout fonctionne , mais j'ai un probleme de caracteres? Quand on m'envois avec des caracteres tel que é à ç ; je recois du n'importe quoi?

Répondre à lalik77

3

careux, le 11 mar 2008 à 14:14:38
  • +1

Pour le problème du départ :
tu dois récupérer les variables dans ton fichier php :
soit $_get, soit $_post, je le vois pas.
sinon c'est souvent un problème de serveur qui gère mal la fonction mail, regarde comment ton serveur le gère.
Pour le problème de caractères, dans ton fichier php, dans les metas du head, remplace ton jeu de caractères :
charset=iso-8859-1; le meilleur je de caractère pour la france à mon gout.

Répondre à careux

8

slum-dunk, le 19 avr 2008 à 02:56:02

Salut pour régler le probléme de caractére faut uiliser la fonction "utf8_decode($variable)" en php.
j'ai eut ce probléme en insérant les données dans une base de données.
tu fais exemple:
$_POST['ma_variable']=utf8_decode($_POST['ma_variable'])

Essaye ça!!

Répondre à slum-dunk

4

megartaud, le 3 avr 2008 à 14:44:54

Effectivement, ca marche avec les $_POST, mais par contre, le transnfert de variable s'est fait avec le format du texte flash :s

<TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Myriad Pro It\" SIZE=\"14\" COLOR=\"#333333\" LETTERSPACING=\"0\" KERNING=\"0\">La valeur de ma variable</FONT></P></TEXTFORMAT>

une idée pour retirer ca?? :s

merci

Répondre à megartaud

5

drizzt_do_urden, le 6 avr 2008 à 22:46:55

Salut,
y a beaucoup de choses, alors j ai pas tout relu.
mais si le probleme c est les \ et que tu veux faire un peu le ménage en php, tu peux faire un stripslashes de ta variable, avant de l afficher. je pense que ca devrait le faire.
++

Répondre à drizzt_do_urden

6

guilty90, le 18 avr 2008 à 08:52:32

Bonjour, j'ai vu que vous aviez poster exactement la meme erreur ( probleme que flash envoie les format plutot que ce qu'il a dedans ) et vu que depuis longtemps vous y avez pas repondu je pense donc que vous avez trouvez??
( j espere )

merci de me repondre
cordialement

Répondre à guilty90

7

malkie, le 18 avr 2008 à 23:30:19

Dans ton script php tu lis tes variables de cette façon :
$nom = strip_tags($_POST["nom"]);

Répondre à malkie

9

nam nam, le 22 avr 2008 à 21:42:15

Salut,
c'est parce que tu envoies mon_champ_texte.htmlText au lieu de mon_champ_texte.text
du coup il te sort le formatage du champ texte avec le texte au lieu du texte seul...

Répondre à nam nam

10

goujou, le 23 avr 2008 à 04:10:29
  • +2

Salut a tous,
je voudrais aussi inserer un formulaire en flash est ce que je doit suivre ce tuto?

Répondre à goujou

11

slum-dunk, le 13 mai 2008 à 20:12:34

Explicite un peu ton probléme ,pour qu'on puisse t'aider.

Répondre à slum-dunk

12

trambs, le 20 mai 2008 à 13:42:57

Bonjour,

j'ai un problème de caractère mais dans flash... je fais appelle au formulaire via un loadmovie dans un swf... ce qui marche parfaitement ( d'ailleurs merci pour ce tuto)

si je lis (une fois mis sur le serveur) le contact.swf en direct > aucun problème.

par contre, si je l'ouvre dans le site (donc, via le loadmovie), il ne veut pas faire les @ et . et me met systématiquement les à en : à la place.

le bouton envoyer ne fonctionne plus, aussi ???


Quelqu'un sait pourquoi ?


Merci d'avance

Trambs

Répondre à trambs

13

trambs, le 20 mai 2008 à 13:52:06


desolé je suis nouveau et j'avais pas compris que l'on pouvait modifier les message...

Oups... désolé


heuuu....

petit truc en plus... le btn envoyer ne fonctionne plus, non plus :(

encore merci

Répondre à trambs

14

vincipop, le 7 jun 2008 à 10:54:02

Bonjour,

Merci pour le code il marche impeccable avec une ou deux modifs !
j'ai une question sur la vérif mail :
comment la modifier pour utiliser une vérif sur un type de numéro exemple TG0F0002
obligation d'avoir TG au début suivi de 1 caractère puis F et enfin 4 caractères.
J'ai tout essayé j'y arrive jusqu'aux 4 caractères mais là si je n'en met que 2 ça passe !
Si quelqu'un a une idée ?

Répondre à vincipop

15

Dens, le 5 sep 2008 à 09:48:01

Salut,

J'ai un soucis, je suis en recherche d'un formulaire flash et php qui fonctionne et je galère, je me suis donc tourné vers ce script qui ne fonctionne pas chez moi.

L'un d'entre vous aurait-il la gentillesse de m'envoyer son script qui fonctione, j'ai vu qu'il y avait eu pas mal de corrections, mais je capte pas tout, ça fait un moment que j'ai pas fait de flash et suis nul en php.

Lors du test sur mon site en ligne, pas d'envoi de mail et pas de remise à zéro des champs de saisie dans le flash.

y a-t'il une histoire de placement du formulaire sur la scène principale ou dans un movie clip qui pourrait empecher de faire fonctionner le tout , ou bien...

Sinon, comment verifie t'on la fonction mail du serveur sur lequel est hebergé le site ?

Merci d'avance à tous, ça fait 3 jours que je galère

Répondre à Dens

16

watyx, le 22 oct 2008 à 09:18:14

Bonjour, j'ai fait le test, et je reçois un mail du type : <TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Georgia\" SIZE=\"20\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">essaiiiii</FONT></P></TEXTFORMAT>.

Je n'arrive pas à résoudre ce problème, je ne vois pas comment placer les $_post ou $_get.
Je vous serait bien reconnaissant de me filer un ptit coup de main ;)

Voici mon send.php :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document sans titre</title>
</head>

<body>
<?php
mail("mail@mail.com","$sujet","$msg","From : $mail\n");
?>



</body>
</html>

Merci à vous !
Il faut gratter les verbes, pour leur faire sonner l'accord plus que parfait ;)

Répondre à watyx

17

watyx, le 24 oct 2008 à 09:13:58

Bonjour, Personne peut m'aider ? Il faut gratter les verbes, pour leur faire sonner l'accord ­plus que parfait ;)

Répondre à watyx

18

zurgloter, le 24 oct 2008 à 20:08:23

Bonjour, moi c'est pareil!!!
help please help...
Merci

Répondre à zurgloter

19

watyx, le 27 oct 2008 à 13:24:27

A l'aide :( Il faut gratter les verbes, pour leur faire sonner l'accord ­plus que parfait ;)

Répondre à watyx

20

zurgloter, le 27 oct 2008 à 13:58:41

Bonjour,
Moi j ai mis ca et ca marche maintenant
Peux etre est ce le /> apres charset que tu as mis, je suis debutant aussi. et j espere que ca t aideras

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
...
?>
</body>
</html>

Répondre à zurgloter

21

watyx, le 28 oct 2008 à 12:07:49

Merci beaucoup, mais j'ai toujours le meme pb :(
Pourrais tu me montrer aussi tes codes dans flash ?
En te remerciant ! Il faut gratter les verbes, pour leur faire sonner l'accord ­plus que parfait ;)

Répondre à watyx

22

zurgloter, le 28 oct 2008 à 17:29:13

<TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"Georgia\" SIZE=\"20\" COLOR=\"#000000\" LETTERSPACING=\"0\" KERNING=\"0\">essaiiiii</FONT></P></TEXTFORMAT>.
Si tu as ce genre la , le probleme vient pas de l action script mais de php.

Répondre à zurgloter

23

watyx, le 6 nov 2008 à 10:50:28

Bonjour, est-ce que quelqu'un peut m'aider ? J'ai essayé un tas de manip, mais toujours le même problème !

MERCI !!!! Il faut gratter les verbes, pour leur faire sonner l'accord ­plus que parfait ;)

Répondre à watyx

24

RAD ZONE, le 6 nov 2008 à 11:01:00

SALUT

Tu veux envoyer un mail par php avec une interphase flash !!??

si c est cela ?? j ai mis un exemple + un tuto et le php pour le faire !!

Sur Un de mes Sites tu as le dossier formulaire_flash-php

RAD

♣  La plus grande erreur que puisse faire un homme est d'avoir peur d'en faire une. ♣

Répondre à RAD ZONE

25

melri, le 20 déc 2008 à 17:50:57

Salut , je viens de metre sur mon site le formulaire que j'ai créer avec flash , mais lorsque je recois le email, je n'ai pas le message dedans ....en faite il n'y a rien ...
est-ce que tu peux m'aider ??

merci !

Répondre à melri

26

RAD ZONE, le 20 déc 2008 à 18:41:24

SALUT

Ton probleme semble venir du PHP !!

mais tu as suivis mon tuto ??? ou c est un autre script

RAD
♣  La plus grande erreur que puisse faire un homme est d'avoir peur d'en faire une. ♣

Répondre à RAD ZONE

27

melri, le 20 déc 2008 à 18:51:41

Salut !

oui j'ai suivi ton tuto !!

Répondre à melri

28

RAD ZONE, le 20 déc 2008 à 18:56:52

Tu recois le mail , mais il est vide !! ?


♣  La plus grande erreur que puisse faire un homme est d'avoir peur d'en faire une. ♣

Répondre à RAD ZONE

33

melri, le 20 déc 2008 à 19:29:59

Je suis vraiment désolé je ne sais pas si c'est moi qui est vraiment conne de ne pas comprendre, mais ca ne fonctionne toujours pas ...

voila mon code dans php :

<html>
<head>
<title>
</title>
</head>
<body>
<?php
mail("mon email","$sujet","$msg","$mail\n");

$to = "mon email";
$sujet = decoder($sujet);
$expediteur = decoder($expediteur);
$messagehtml = decoder($messageHtml);
$messageTexte = utf8_decode($messageTexte);
?>
</body>
</html>


je dois forcément faire quelque chose de pas correcte !!!
désolé encore pour mon incompréhension :)

Répondre à melri

35

RAD ZONE, le 20 déc 2008 à 19:42:35

??????????

mais il te faut le PHP COMPLET

  <?php
function decoder($texte){
        $texte = utf8_decode($texte); // converti en iso-8859-1
        $texte = stripslashes($texte); // élimine les anti-slashs d'échappement
        $texte = nl2br($texte); // converti les retours  en <br />
        $texte = trim($texte); // élimine les '\n', '\r', '\t' etc
        return $texte;
}
 
$erreurPHP="";

/* 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";
*/

if(isset($_POST['sujet']))$sujet = $_POST['sujet'];
else $erreurPHP .= "Variable 'sujet' non transmise\n";
 
if(isset($_POST['messageHtml']))$messageHtml = $_POST['messageHtml'];
else $erreurPHP .= "Variable 'message' non transmise\n";

if(isset($_POST['messageText']))$messageTexte = $_POST['messageText'];
else $erreurPHP .= "Variable 'message' non transmise\n";
 
if(isset($_POST['expediteur']))$expediteur = $_POST['expediteur'];
else $erreurPHP .= "Variable 'expediteur' non transmise\n";
 
if(isset($_POST['mailReponse']))$mailReponse = $_POST['mailReponse'];
else $erreurPHP .= "Variable 'mailReponse' non transmise\n";
 
if($erreurPHP != "") echo utf8_encode("erreurPHP=".$erreurPHP);
else
{
	$to = "TON MAIL";
	$sujet = decoder($sujet);
	$expediteur = decoder($expediteur);
	$messagehtml = decoder($messageHtml);
	$messageTexte = utf8_decode($messageTexte);
	
	 //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------

     $frontiere = '-----=' . md5(uniqid(rand()));

     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------

     $headers = 'From: '.$expediteur.' <'.$mailReponse.'>'."\n";
     $headers .= 'Return-Path: <'.$mailReponse.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'."\n";
	 $headers .= 'Content-Transfer-Encoding: 8bit';

     //-----------------------------------------------
     //MESSAGE TEXTE
     //-----------------------------------------------
     $message = "This is a multi-part message in MIME format\n\n";

     $message = "--$frontiere\n";
     $message .= "Content-Type: text/plain; charset=UTF-8\n";
     $message .= "Content-Transfer-Encoding: 8bit\n\n";
     $message .= $messageTexte."\n\n";

     
	 //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= "--$frontiere\n";
     $message .= "Content-Type: text/html; charset=UTF-8\n";
     $message .= "Content-Transfer-Encoding: 8bit\n\n";
     $message .= $messageHtml."\n\n";

     $message .= "--$frontiere--\n"; 

	$mail_OK = mail($to, $sujet, $message, $headers) ;
	
 
	if (!$mail_OK)
	{
		$erreurPHP .= "Problème lors de l'envoi du mail";
		
	}
	echo utf8_encode("erreurPHP=".$erreurPHP);
}
?>
 


tu le nome
envoyer_mail.php tu le met dans un dossier appele php

et dans le code action script de ton swf tu met
envoyeur.sendAndLoad("php/envoyer_mail.php", receveur, "POST");


et c est tout :-))
♣  La plus grande erreur que puisse faire un homme est d'avoir peur d'en faire une. ♣

Répondre à RAD ZONE

36

melri, le 20 déc 2008 à 19:52:51

Merci pour ton aide ...c'est plus compliqué que je pensais !!!

je commence à avoir mal à la tete alors je vais regader ca plus tard !!

merci encore c'est très apprécier !!!

Répondre à melri

34

melri, le 20 déc 2008 à 19:38:29

Je viens de réaliser que non effectivement ce n'est pas ton tuto que j'ai utilisé !!! hahaha je suis vraiment dans la lune ...j'ai pris celui de good canular ...

vraiment désolé ...

Répondre à melri

29

melri, le 20 déc 2008 à 19:01:34

Oui je recois le email , mais le sujet yen a pas et il n'y a pas de message non plus ...

et en même temps le "From : $mail\n" , c'est ou que je dois mettre le nom ...a la place du from ??? ou apres les :

Répondre à melri