Mailer ComboBox et PHP

Messages postés
37
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
12 juin 2008
-
Messages postés
37
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
12 juin 2008
-
Bonjour,

Voici mon problème...

Pour simplifier la communication entre mes visiteurs et mes services, j'utilise un formulaire mail visible sur
http://www.cyriltahon.com/mail.swf




Hors je voudrais leur proposer de choisir leur destinataire pour trier en amont les mail reçus.

J'utilise une combobox pour selectionner le destinataire. Je n'arrive pas à trouver une solution pour envoyer l'information au fichier PHP qui traiterait l'adresse choisi.

J'ai pris pour racine, le tuto : http://wiki.media-box.net/tutoriaux...laire_flash_php




Fichier zip: fla, swf, php Dispo:
http://www.cyriltahon.com/mail.zip




En esperant pouvoir rajouter sur cette exemple de mailer, une combobox à la place pour selectionner le destinataire...

Code Flash:
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 tiEmail:TextInput = this.email_ti;
var tiPrenom:TextInput = this.prenom_ti;
var taCommentaire:TextArea = this.commentaire_ta;
var taSortie:TextArea = this.sortie_ta;
var cbLettre:CheckBox = this.lettre_cb;
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", "bold");
taSortie.label.selectable = false;
cbLettre.label = "Recevoir la lettre d'information";

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

var email:String;
var prenom:String;
var commentaire:String;
var recevoirLettre:Boolean;

// Fonctions outils

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

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

function validerFormulaire ():String
{
email = tiEmail.text;
prenom = tiPrenom.text;
commentaire = taCommentaire.text;
recevoirLettre = cbLettre.selected;

var erreurs:String = "";

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 formerMessage ():String
{
var message:String = "<html><head><style type='text/css'> p{font: 12px Arial} </style></head>";
message += "Objet : " + prenom + "
";
message += "Adresse email : " + email +"

";
if (commentaire != "")
message += "Message :
";
message += commentaire;
if (recevoirLettre)
message += "Personne souhaitant recevoir la lettre d'information.

";
message += "

</html>";

return message;
}

function envoyerMail ():Void
{
mcEnvoyer.enabled = false;

var envoyeur:LoadVars = new LoadVars();
var receveur:LoadVars = new LoadVars();

envoyeur.sujet = "Cyriltahon.com";
envoyeur.message = formerMessage ();
envoyeur.expediteur = email;
envoyeur.mailReponse = email;

receveur.onLoad = onMailEnvoye;

envoyeur.sendAndLoad("php/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("Message envoyé!");;
;
reinitFormulaire();
}
else
{
afficherEnSortie("Erreurs PHP : \n" + this.erreurPHP);
}
}

Code PHP:
<?php

function decoder($texte){
$texte = utf8_decode($texte); // converti en iso-8859-1
$texte = stripslashes($texte); // ôte les anti-slashs d'échappement
$texte = nl2br($texte); // converti les retours en

$texte = trim($texte); // ôte les '\n', '\r', '\t' etc
return $texte;
}

$erreurPHP="";

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

if(isset($_POST['message']))$messag
e = $_POST['message'];
else $erreurPHP .= "Variable 'message' non trasmise\n";

if(isset($_POST['expediteur']))$exp
editeur = $_POST['expediteur'];
else $erreurPHP .= "Variable 'expediteur' non trasmise\n";

if(isset($_POST['mailReponse']))$ma
ilReponse = $_POST['mailReponse'];
else $erreurPHP .= "Variable 'mailReponse' non trasmise\n";

if($erreurPHP != "") echo utf8_encode("erreurPHP=".$erreurPHP);
else
{
$sujet = decoder($sujet);
$expediteur = decoder($expediteur);
$message = decoder($message);

$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $expediteur <$mailReponse>\r\n";

$mail_OK = mail("adresse destinataire (que dois je mettre???)", $sujet, $message, $headers) ;

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

Merci d'avance !
++

2 réponses

Messages postés
317
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
19 octobre 2007

Bonjour,  je ne sais pas si j'ai bien tout saisi, et je vais essayer de me lancer avec ma compréhension.

Tu dis donc utiliser le combobox. Ok. As tu utiliser ses composants ? Le datafield etc?  Le radioButton dans le paneau parametre, et son groupName, en mettant une valeur de newletter ? Parametre label. Valeur oui. Et ainsi de suite.  Puis sur sur parametre selected, mettre en true. ( pour le par defaut  du button dernier )
chaque RadioButton recoit une fonction, un choix de consulter, et ils sont indépendants l'un à l'autre.
sur label ecrire le libellé, sa valeur donc, genre: lien vers... magazine, autre destinataire,e tc. La le menu se fait deroulant donc, et file des choix faisable à l'animation test.
Le rowCount qui apr defaut est a 5 peut etre changé selon les elements que tu veux afficher et seront alors modifiés dans ce sens.
pour la checkbox, ouvre parametre panneau et change valeur du label du premier composant checkbox et met sommaire. rezpete meme action pour els autres composants. Attribut des valeurs, contacts, liens, redirection etc.
Change le texte place sur les buttons, egalement dans paramettre.
Modifier la valeur de envoyer du parametre label.
le datafield propose des dates en anglais, si ca t'interesse. Tu peux mofifier la dessus, les jours, les dates en francais etc, sans son paneau de parametre.
sauvegarde le. Pour le rendre dynamique et permettre d'envoyer email.
voila tu as tout dedans pour modifier je pense, si c'est de ca que tu parles.. ?

Une autruche ne se cuit pas aux petits lardons
Messages postés
37
Date d'inscription
vendredi 20 janvier 2006
Statut
Membre
Dernière intervention
12 juin 2008

Yep !

C'est pour celà que j'ai mis mes source en ligne dans un zip...
Ce que je chercher en faîtes, c'est d'envoyer les données de la selection de l'utilisateur, dans la combobox, vers le fichier php pour que ce dernier puisse utiliser le "data" de la combobox (selectionner), comme adresse email destinataire... Savoir à qu'elle adresse il doit envoyer le formulaire rempli... Adresse selectionné par le visiteur dans le formulaire...
Bon enfin bref, j'ai trouver la solution hier soir vers 1heure du mat lol et j'ai du reveiller des gens en criant "YESSSS !" quand mon formulaire flash m'à indiquer "Message envoyé!"
Pour référence, tu pourras mieux comprendre le truc à cette adresse, du site toujours en construction... www.comyx.fr dans le liens "contact"...
Je pense mettre un tuto dans les code pour se formulaire....

Merci +++