Aide formulaire envoi mail

lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008 - 2 mai 2008 à 14:29
lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008 - 5 mai 2008 à 12:08
Bonjour, c'est mon message avant le veritable pétage de plomb.... voila j'ai un formulaire d'envoi de mail fash avec son code php, et sa ne marche pas, jai appelé mon magnifique hebergeur orange (et la réponse est non je ne peux pas changer d'hebergeur) qui m'ont signalé que la fonction mail devait etre déclarée completement avec son header selon un exemple que jai adapté a mon code, mais rien ne marche encore,donc voila jessaie de vous joindre tout sa avec le .php si une envie soudaine vous vient de pouvoir peut etre m'aider jen serais trés mais trés reconnaissante...
erf je sais pas comment joindre des trucs, donc jvous tppe le code:

J'ai un form.fla, dans lequel il y a un bouton reset, un bouton envoyer, et des champs de texte prenom, nom, mail sujet et message, avec pour nom de variable:
nom = lastname
prenom = firstname
mail=MailFrom
sujet= Subject
message=Body

Voici le code sur le bouton reset(met les champs a zero):

on (release) {
    firstname="";
    lastname="";
    MailFrom="";
    Subject="";
    Body="";
    trace('sa cest reset');
    }
 

(les trace c'est pour m'aider)

voici le code du bouton "envoyer":

on (release) {
    if (signal != 2 && MailFrom .indexOf("@") !=-1 && MailFrom .indexOf(".") !=-1 && Subject !="" && Body !="" && firstname !="" && lastname !="") {
        signal=2;
        loadVariablesNum("flaform.php", 0, "POST");
    }
    else if(Body == "") {
        mc.Status = "Votre message SVP";
    }
    if (Subject == "") {
        mc.Status = "L'objet de votre mail";
    }
       
    if ( MailFrom .indexOf("@") ==-1 ||  MailFrom .indexOf(".") ==-1) {
        mc.Status = "Email incorrect !";
    }
    if (lastname == "") {
        mc.Status = "Votre nom SVP";
        }
    if (firstname == "") {
        mc.Status = "Votre prénom SVP";
        }
}   

et enfin le plus long pour la fin, voici le code sur mon php nommé flaform.php:

<?php
#
$MailTo="quintelaclara@yahoo.fr";

# fonction permettant l'encodage des caractres accentuZs
function getFormatedText($texte){
$texte =utf8_decode($texte);
$texte =eregi_replace( "\r", "\n", $texte);
$texte =stripcslashes($texte);
return $texte;
}
# fin de la fonction

$firstname=getFormatedText($_POST['firstname']);
$lastname=getFormatedText($_POST['lastname']);
$MailFrom=getFormatedText($_POST['MailFrom']);
$Subject=getFormatedText($_POST['Subject']);
$Body=getFormatedText($_POST['Body']);

#
# Formating Body content ######################################################
#
$FormContent="
Les informations suivantes ont été recues :\n
----------------------------------------------------------------------------\n
Prénom: ".$firstname."\n
Nom: ".$lastname."\n
E-mail: ".$MailFrom."\n
----------------------------------------------------------------------------\n
Sujet: ".$Subject."\n
----------------------------------------------------------------------------\n
Message: ".$Body."\n
----------------------------------------------------------------------------\n
".urlencode(utf8_encode($FormContent));
#
#
$headers ="From: 'excelson'<".$MailFrom."<mailto:".$MailTo.">>"."\n";
$headers .="Return-Path: ".$MailFrom."<mailto:".$MailTo.">"."\n";
$headers .="Reply-To: ".$MailFrom."<mailto:".$MailTo.">"."\n";
$headers .="Content-Type: text/plain; charset='iso-8859-1'"."\n";
$headers .="Content-Transfer-Encoding: 8bit";

if(mail(.$MailTo."<mailto:".$MailTo.">", "$Subject (de ".$firstname.$lastname.")", $FormContent, $headers))
{
echo ('Le message a bien été envoyé');
}
else
{
echo ('Le message n\'a pu être envoyé');
}
#
#
# Autoresponder   #############################################################
#
#
       $filename = "answer.txt";
       $fd = fopen( $filename, "r" );
       $contents = fread( $fd, filesize( $filename ) );
       fclose( $fd );
      
$headers ="From: "excelson"<".$MailTo."<mailto:".$MailFrom.">>"."\n";
$headers .="Return-Path:".$MailTo."<mailto:".$MailFrom.">"."\n";
$headers .="Reply-To:".$MailTo."<mailto:".$MailFrom.">"."\n";
$headers .="Content-Type: text/plain; charset="iso-8859-1""."\n";
$headers .="Content-Transfer-Encoding: 8bit";

if(mail(.$MailFrom."<mailto:".$MailFrom.">", "Merci de votre envoi - excelson.com", $contents, $headers))
{
echo ('Le message a bien été envoyé');
}
else
{
echo ('Le message n\'a pu être envoyé');
}
#
#
# Flashsignal Variable   ######################################################
#
$signal=1;
echo "signal=$signal";
#
###############################################################################
?>

Bon c'est super long dsl, moi je me doute de mon erreur, soit au niveau du LoadVariablesNum qui doit pas fonctionner soit au niveau du header du mail mais alors la j'ai  aucun idée de comment le corriger....
Voila demande âme charitable prête à lire tout ce code pour m'aider... Merci!

11 réponses

lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008
2 mai 2008 à 14:31
Par contre soyez sympa jai oublié de virer l'adresse donc on fait pas de conneries please!
0
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
2 mai 2008 à 15:13
Bonjour,
Tu n'as toujours rien changer depuis ton dernier message a première vu et double poster un problème ne change pas grand chose...

Pour commencer fait des test ! pour savoir si ton soucis vient du php ou de l'AS...

Donc tu fait afficher t'es variable sous php! si elle s'affiche c'est ton envoie de mail qui déconne sinon c'est ton loadVariables...

Poser ton codes c'est bien mais si tu faisais quelque test en premier on pourrait t'aider....

-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
0
lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008
2 mai 2008 à 18:08
Alors les tests sont ipossible car mon .php n'affiche rien alors qu'il y a plein d'echo; mais jme doute que le problème vient avant tout du loadvariablesnum et ensuite du php avec le header.
Le pbm c'est que mon php ne renvoie rien, donc peut etre qu'il n'est mm pas appelé! alors que lorsque je changeait mon header en mettant par exemple des guillemets à la place de simple cote, la le .php maffichait des resultats correspondants à mes tests...
C'est pour cela que je ne peux pas identifier précisément où est l'erreur c'est donc pourquoi je post sur un forum tout simplement..si j'avais identifié l'erreur jme serais demerdée toute seule.. mais là je sèche un peu!!
0
lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008
2 mai 2008 à 18:12
et sinon lorque le .php maffichait certains tests l'affichage des variables recupéré du flash ne fonctionnait pas... mais la je sait pas encore, apres avoir recupéré les variable via ma fonction getformatedText tes ce que je peut les afficher vu que jeffectue un encodage...?bref l'affichage des vars a été impossible.


Quand le .php ne  maffiche plus aucun resultat, je pense que le header y est pour quelque chose...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_alise Messages postés 2203 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 26 janvier 2010
2 mai 2008 à 19:54
Ce qui est curieux, c'est qu'Orange n'ait aucune FAQ ou modèle de ce genre de chose, la plupart des hébergeurs l'ont

Alise
from FlashForum-oi.info
0
lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008
2 mai 2008 à 19:58
erf merci de revenir à mon aide. mais je déséspere orange c'est de la m******* et leur service technique est aussi pourri donc bon...!
0
cs_alise Messages postés 2203 Date d'inscription lundi 12 juillet 2004 Statut Membre Dernière intervention 26 janvier 2010
2 mai 2008 à 20:03
je vens de t'envoyer le maileur d'un copain, assez sophistiqué, essayes de le tester en changeant l'adresse mail dans le php et tiens moi au courant

Alise
from FlashForum-oi.info
0
lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008
2 mai 2008 à 20:20
Ok jtesterais demain jte tiens au courant mci!
0
faiblard Messages postés 337 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 4 janvier 2011
3 mai 2008 à 02:57
Ta paye un hébergement sur orange ou c'est celui de base qui ne prend pas le php ? (question stupide mais bon des fois... )

-------------------------------------------------------------------
La recherche est ton amie ! Promis elle ne te mordra pas...
Enjoy
N'oubliez pas d'accepter pour aidez les autres quand ils cherchent !
0
lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008
3 mai 2008 à 12:24
Ba en faite j'avoue pas avoir trop compris ta question jai un serveur orange linux donc qui suporte le php mais dont la fonction mail() doit etre definie avec le header complet pour ameliorer la "sécurité d'envoi du mail via un formulaire" dixit le service technique, mais j'ai limpression que ya pas mal de pbms qui en découlent, bref jvais tester le formulaire de Alise et jvous tiens au courant!!
Merci
0
lyonnaisedecoeur Messages postés 65 Date d'inscription jeudi 10 avril 2008 Statut Membre Dernière intervention 15 mai 2008
5 mai 2008 à 12:08
J"ai payé un hebergement sur orange....
mais voila un nouveau code que alise m'a passé, il y a un souci je ne recupère pas les variables du flahs vers php, mon message d'erruer sur mon .php est:
erreurPHP=Variable 'sujet' non transmise
Variable 'message' non transmise
Variable 'message' non transmise
Variable 'expediteur' non transmise
Variable 'mailReponse' non transmise

Il n'y a pas de message d'erreur sur mon .swf pourtant les erreurs devraient remonter dessus, voila mon code ax:

import mx.controls.TextInput;
import mx.controls.TextArea;
import mx.controls.CheckBox;
import mx.controls.Button;

// On référence les occurences de compos pour profiter du typage strict
var tiNom:TextInput = this.nom_ti;
var tiPrenom:TextInput = this.prenom_ti;
var tiEmail:TextInput = this.email_ti;
var taCommentaire:TextArea = this.commentaire_ta;
var taSortie:TextArea = this.sortie_ta;
var mcEnvoyer:Button = this.envoyer_mc;

// Initialisation des compos
taSortie["depthChild0"]._visible = false; // hack pour remplacer les 4 lignes ci-dessus
taSortie.setStyle("color", "0xB13501");
taSortie.setStyle("fontStyle", "italic");
taSortie.label.selectable = false;

// Ordres de tabulation
tiNom.tabIndex = 1;
tiPrenom.tabIndex = 2;
tiEmail.tabIndex = 3;
taCommentaire.tabIndex = 4;
mcEnvoyer.tabIndex = 5;

var nom:String;
var prenom:String;
var email:String;
var commentaire:String;

// Fonctions outils

function afficherEnSortie(pChaine:String):Void
{
    taSortie.text = pChaine;
}

function reinitFormulaire():Void
{    tiNom.text tiPrenom.text tiEmail.text = taCommentaire.text = "";
}

function validerFormulaire ():String
{
    nom = tiNom.text;
    prenom = tiPrenom.text;
    email = tiEmail.text;
    commentaire = taCommentaire.text;
   
    var erreurs:String = "";
   
    if (nom == "") erreurs += "Merci de remplir le champ 'nom'" + newline;
    if (prenom == "") erreurs += "Merci de remplir le champ 'prénom'" + newline;

    if (email == "") erreurs += "Merci de remplir le champ 'email'" + newline;
    else
    {
        var atIndex:Number = email.indexOf("@");
        var dotIndex:Number = email.indexOf(".", atIndex);
        trace(atIndex + " " + dotIndex);        if (atIndex -1 || dotIndex -1 || dotIndex - atIndex <= 1)
            erreurs += "L'email n'est pas valide" + newline;
    }
    return erreurs;
}

function formerMessageText ():String
{
    var message:String = "Formulaire :";
    message += "Origine : " + this._url + "\r\n";
    message += "Nom : " + nom + "\r\n";
    message += "Prénom : " + prenom + "\r\n";
    message += "Adresse email : " + email +"\r\n";
    if (commentaire != "")
        message += "Commentaire :\r\n";
        message += commentaire;
   
    return message;
}

function formerMessageHtml ():String
{
    var message:String = "<html><head><style type='text/css'> p{font: 12px Arial} </style></head>";
    message += "Formulaire :
";
    message += "Origine : " + this._url + "

";
    message += "Nom : " + nom + "
";
    message += "Prénom : " + prenom + "
";
    message += "Adresse email : " + email +"

";
    if (commentaire != "")
        message += "Commentaire :
";
        message += commentaire;
    message += "

</html>";
   
    return message;
}

function envoyerMail ():Void
{
    mcEnvoyer.enabled = false;
   
    var envoyeur:LoadVars = new LoadVars();
    var receveur:LoadVars = new LoadVars();   
   
    envoyeur.sujet = "Formulaire";
    envoyeur.messageText = formerMessageText ();
    envoyeur.messageHtml = formerMessageHtml ();
    envoyeur.expediteur = prenom + " " + nom;
    envoyeur.mailReponse = email;
   
    receveur.onLoad =onMailEnvoye;
   
    envoyeur.sendAndLoad("formulaire/envoyer_mail.php", receveur, "POST");
    afficherEnSortie("Envoi en cours...");
}

function onMailEnvoye (pSuccess:Boolean):Void
{
    mcEnvoyer.enabled = true;
    if (!pSuccess)
    {
        afficherEnSortie("Problème avec le script PHP.");
    }
    else if (this.erreurPHP == "")
    {
        afficherEnSortie("L'envoi s'est terminé avec succès.");
        reinitFormulaire();
    }
    else
    {
        afficherEnSortie("Erreurs PHP : \n" + this.erreurPHP);
    }
}

le code sur le bouton envoyer:

mcEnvoyer.onRelease = function():Void
{
    var erreurs:String = validerFormulaire();
    if (erreurs == "") envoyerMail();
    else afficherEnSortie(erreurs);
}

et enfin le php:

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

        $texte = trim($texte); // élimine les '\n', '\r', '\t' etc
        return $texte;
}
 
$erreurPHP="";
 /*
$_POST['sujet'] = 'formulaire Test';
$_POST['messageHtml'] = '<html><head><title>Excelson</title></head>Salut
test

Bye</html>';
$_POST['messageText'] = "Test ";
$_POST['expediteur'] = "Clara";
$_POST['mailReponse'] = "quintelaclara@yahoo.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 = "xxxxxxxxxxxxx@xxxx.fr";
    $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(mt_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\r";

     $message = '--'.$frontiere."\n";
     $message .= 'Content-Type: text/plain; charset=UTF-8'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\r\n\r";
     $message .= $messageTexte."\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);
}
?>

si on pourrait enfin mexipliquer le pbm.... je sèche dur dur
0
Rejoignez-nous