Envoi d'un mail flash php [Résolu]

Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
-
Bonjour, j'ai un petit souci, je dois faire une page flash AS2 avec, nom, tel, une liste déroulante, et un message, mais rien "n'arrive" :/ je suis un naze en code et je ne pige pas d'où ça peut venir

voilà la page php qui est appelée :

<?php
$letel = $zeTel;
$sujet = $zeSujet;
$leNom = $zeNom;
$leMail = $zeMail;
$lemsg .= "Nom: " . $leNom . " <br/> " . "Mail: " . $leMail . " </br> " . "Téléphone: " . $letel . " <br/><br/> " . $zeMessage;
$entete ="From:de votrecoaching.com\r\n"; //l'email de l'expéditeur
$entete .="MIME-Version: 1.0\r\n";
$entete .="Content-Type: text/html; charset=us-ascii\r\n"; //le mail est envoyé au format html
mail("vegetalain@hotmail.com", $sujet, $lemsg, $entete); // envoie du mail
?>

les noms "Var" dans flash sont

- zeNom
- zeMail
- zeTel
- combo1 (nom du composant, la liste déroulante n'a pas de champ "var")
- zeMessage

et la commande du bouton envoyer :


on (release){
if (!zeMail.length || zeMail.indexOf("@") == -1 || zeMail.indexOf(".") == -1) {
zeStatus.text = "Adresse email erronée ou incomplète";
} else {
loadVariablesNum("courrier.php", 0, "POST");
zeNom = "";
zeMail = "";
zeTel = "";
zeSujet = "";
zeMessage = "";
zeStatus.text = "Votre formulaire a bien été envoyé."+"\n"+"Je vous contacterais dès que possible!";
}
}

le tout est dans un dossier test genre "bidule.com/testfinal/"

... quelqu'un a une idée?...

Un graphiste à la dérive
Afficher la suite 

Votre réponse

11 réponses

Messages postés
25248
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 avril 2019
366
0
Merci
Bonjour,
Déjà.. tu développes en local ou sur un serveur ?
Les parametrages du SMTP est-il fait ?
L'as tu testé sans passé par flash mais en envoies direct depuis PHP (il suffit de récupérer un script d'envoi de mail de base sur le net, de le coller dans une page php et de le tester).

Commenter la réponse de jordane45
0
Merci
Salut Alain,

Es-tu sûr que ton script PHP recoit bien les valeurs POST de ton element flash ?

En PHP, on accède aux variables postées par $_POST["Le nom de ton param"] essai avec un script PHP remanié dans ce sens...

<?php
 $letel = $_POST['zeTel'];
 $sujet = $_POST['zeSujet'];
 $leNom = $_POST['zeNom'];
 $leMail = $_POST['zeMail'];
 $lemsg .= "Nom: " . $leNom . " <br/> " . "Mail: " . $leMail . " </br> " . "Téléphone: " . $letel . " <br/><br/> " . $zeMessage;
 $entete ="From:de votrecoaching.com\r\n"; //l'email de l'expéditeur
 $entete .="MIME-Version: 1.0\r\n";
 $entete .="Content-Type: text/html; charset=us-ascii\r\n"; //le mail est envoyé au format html
 mail("***@***", $sujet, $lemsg, $entete); // envoie du mail
?>


Mais a priori, ton utilisation de mail() est correcte, a ceci près que hotmail est un peu plus regardant sur les entêtes mails, essai avec gmail (plutôt permissif, jamais eu de soucis de mon côté...).
Sinon, cela peut venir également de la configuration de ton serveur Web, mail va utiliser les paramètres configuré dans ton environnement WEB pour shooter le mail en utilisant les bons relais SMTP...

Je vais tester ton code. Et je te dis quoi si je vois un truc ...

-----------

Re, je viens de tester ton script, et la bonne nouvelle c'est que d'un point de vue mail(), pas de problèmes.

Par contre, les espaces ne sont pas tolérés dans le header "From:". Au pire, si tu n'arrive pas a voir les chose essaie avec ce script là.
<?php
$entete ="From:de votrecoaching.com\r\n";
$entete .="MIME-Version: 1.0\r\n";
$entete .="Content-Type: text/html; charset=us-ascii\r\n";
mail("***@***", "test email FORM", var_export($_POST, true), $entete);
?>


C'est bourrin, mais cela devrait te permettre de déboguer plus facilement... ^_^ Personnellement je penche pour un problème sur la façon dont tu récupère les infos POST de ton formulaires... ^_^
Commenter la réponse de Mathieu
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
0
Merci
Merci Mathieu, je vais tester ça... hm... sinon ce n'est pas pour moi mais pour une cliente dont j'ai fait le site y'a mille ans, et là hop, mise à jour... x/ et en fait son adresse mail n'est ni hotmail ni gmail, mais le nom de son site, genre contact@monsupersite.com

... hm, bon je vais tester ce que tu m'as dit, on va voir si mon ordi n'explose pas :D

--
jordane45
Messages postés
25248
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 avril 2019
366 -
Si il y a eu une mise à jour, il se peut que le paramétrage des Variables GLOBAL ai été modifié.
Et donc en effet, il faut que tu passes par des $_POST['mavariable'] pour pouvoir récupérer le contenu des tes variables.
vegetalain
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
-
alors avec le code de Mathieu, effectivement "ça fonctionne"... l'info est reçu, à ceci près que les infos sont entravées de bout de code, et ça arrive dans les spams (côté yahoo.fr. car côté hotmail y'a rien nulle part.), j'attends une réponse de ma cliente pour savoir si de son côté elle a reçu qqchose sur mon mail "pro".
vegetalain
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
-
je reçois ça en fait :

array ( 'iciblanc' => '142.578125', 'difblanc' => '7.421875', 'spidblanc' => '0.37109375', 'choix1' => ' ', 'j' => '1', 'x' => ' ', 'zeNom' => 'warum', 'zeMail' => 'sam.gave@puree.grr', 'zeTel' => '9876543210', 'zeMessage' => 'fdgsdfgdf', '_searchKey' => '46328', )
jordane45
Messages postés
25248
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 avril 2019
366 -
ce sont les variables envoyées par ton formulaire qui sont stockées dans la variable POST.
Cela prouve que tes variables existent bien.
Maintenant, reprend ton script d'origine..et initialise tes variables comme le propose Mathieu:
 $letel = $_POST['zeTel'];
 $sujet = $_POST['zeSujet'];
 $leNom = $_POST['zeNom'];
 $leMail = $_POST['zeMail'];

ça devrait fonctionner
vegetalain
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
-
ça roule :D... bon, y'a plus qu'à changer de dossier et de virer l'ancienne version du site... merci de votre aide, vous m'avez retiré une sacrée épine là
Commenter la réponse de vegetalain
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
0
Merci
@ jordane45, je "développe" en local, pour le smtp, j'en sais rien ?... sinon je vais zieuter le script dont tu as parlé, "juste pour voir"... tout à l'heure grâce au code mathieu ça a marché.

... 1 fois xD, pas deux 8O x/

hm... affaire à suivre

--
Commenter la réponse de vegetalain
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
0
Merci
Ca remarche..

je vote pour "la Poste", c'est mieux.

--
Commenter la réponse de vegetalain
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
0
Merci
c'est avec ce code-là que j'ai fait le test sur trois mails :


<?php
$letel = $_POST['zeTel'];
$sujet = $_POST['zeSujet'];
$leNom = $_POST['zeNom'];
$leMail = $_POST['zeMail'];
$lemsg .= "Nom: " . $leNom . " <br/> " . "Mail: " . $leMail . " </br> " . "Téléphone: " . $letel . " <br/><br/> " . $zeMessage;
$entete ="From:de votrecoaching.com\r\n";
$entete .="MIME-Version: 1.0\r\n";
$entete .="Content-Type: text/html; charset=us-ascii\r\n";
mail("lhermittealain@yahoo.fr", "test email FORM", var_export($_POST, true), $entete);
?>
suivant ces conseils, si bien sûr j'ai tout capté
Commenter la réponse de vegetalain
0
Merci
Salut,

Cela confirme, que ton problème initial était bien la facon dont tu récupérait les valeur POST de ton formulaire :

Essai de changer ton script comme ça :
<?php
$letel = $_POST['zeTel'];
$sujet = 'test envoi mail';//$_POST['zeSujet']; En fait cette valeur n'est pas envoyé par le formulaire, il faut que tu envoies la valeur String à mettre dans le sujet ou que tu fasse un table de correspondance ID => Sujet
$leNom = $_POST['zeNom'];
$leMail = $_POST['zeMail'];
$lemsg .= "Nom: " . $leNom . " <br/> " . "Mail: " . $leMail . " </br> " . "Téléphone: " . $letel . " <br/><br/> " . $_POST['zeMessage'];
$entete ="From:de votrecoaching.com\r\n"; //l'email de l'expéditeur
$entete .="MIME-Version: 1.0\r\n";
$entete .="Content-Type: text/html; charset=us-ascii\r\n"; //le mail est envoyé au format html
 mail("***@***", $sujet, $lemsg, $entete); // envoie du mail
?>


Par contre niveau secu', il va falloir faire quelque chose ... parce que là c'est ultra moche ^_^
jordane45
Messages postés
25248
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
22 avril 2019
366 -
Cela confirme surtout que le parametrage a changé dans le fichier php.ini..
>> L'option register_globals qui est par défaut initialisée à OFF sur les versions "récentes" de Php.
Commenter la réponse de Mathieu
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
0
Merci
merci je viens d'uploader la nouvelle version du truc php, je teste pour l'instant sur mon compte yahoo.
Euh... vi, vi, je confirme, mes notions de "beauté" en matière de code, sont à ras les pâquerettes xD
Commenter la réponse de vegetalain
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
0
Merci
Youtpiiiiiiiiiiiiiiii ça maaaaaaaaaaaaarche... j'ai genre :
Nom: blablabla
tel : 65046045654
mesg : blabla

c'est super

merci c'est génial kan ça fonctionne...

bon, je teste l'envois sur la boite mail de ma cliente...
Commenter la réponse de vegetalain
0
Merci
Salut, je te propose cette version de mon cru, avec des bribe de secu' dedans, c'est pas la panacée mais c'est mieux que rien ... ^_^

Par contre je suis désolé je n'ai pas compris comment tu faisait pour récupérer ton sujet de ton objet flash...

Mais d'une manière générale :
1°) ne jamais croire ce qui arrive d'un formulaire HTML
2°) si tu as confiance, n'ai pas confiance !!
3°) Il doit te manquer quelques header mails pour rendre ton script parfaitement fonctionnel chez tous les FAI... mais là c'est un autre sujet...

<?php
if (false === isset($_SERVER['HTTP_REFERER']) || false === stripos($_SERVER['HTTP_REFERER'], $_SERVER['HTTP_HOST'])) {
	//On vérifie que le referer de la requête est bien sur le même domaine que le script de traitement du POST. On en profites aussi pour interdire les accès direct à la page de traitement du formulaire. Cela évite les requête POST cross domaine... après tu en as peut être besoin pour ton cas, mais de base c'est pas cool ça...
	header("HTTP/1.0 403 Forbidden");
	exit(1);
}

$aFormData	= $_POST;
if (false === isset($aFormData['zeMail']) || false == preg_match('/^[_\.\+0-9a-z-]+@([0-9a-z-]+\.)+[a-z]{2,4}$/i', trim($aFormData['zeMail'])) {
	// On vérifie que l'adresse e-mail fournie par le formulaire en est bien une, cette vérification est sommaire, mais nécessaire pour éviter de shooter un mail vers une adresse trop pourrie...
	header("HTTP/1.0 403 Forbidden");
	exit(1);
} else {

	$sTel			= $aFormData['zeTel']; //On prend tel quel
	$sNom			= $aFormData['zeNom']; //On prend tel quel
	$sMail			= trim($aFormData['zeMail']); //On enleve les possibles espaces au début et a la fin de la chaine.
	$sExtraMessage	= $aFormData['zeMessage'];
	
	$sMessage		= nl2br(htmlentities("Nom: " . $sNom . "\n" . "Mail: " . $sMail . "\n" . "Téléphone: " . $sTel . "\n\n" . $sExtraMessage)); //On nettoie le message de certains caractères indésirables, genre code HTML / JS dans le message, pour les webmails.
	
	$aEntete	= array();
	
	//Ici tu drop tes headers mails. http://fr2.php.net/manual/en/function.mail.php
	$aEntete[]	= "From:yourdomain.com";
	$aEntete[]	= "MIME-Version: 1.0";
	$aEntete[]	= "Content-Type: text/html; charset=us-ascii";
	
	mail('***@***', 'ton sujet', $sMessage, implode("\r\n", $aEntete));
	exit(0);
}
?>


D'un point de vue pure sécu, ton script est vulnérable pour une utilisation par un moteur de SPAM : ton serveur WEB peut se retrouver en train de shooter plein des mails vers la boite destinataire : il est très facile de POST sur une ton url et ainsi de pousser un mail sans passer par ton interface FLASH.

Voilà c'était ma petite analyse / conseil / troll du soir.

Amuses toi bien !! ^_^
Commenter la réponse de Mathieu
Messages postés
746
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
0
Merci
ben en fait les champs flash ont un om d'objets et un nom de variables.

La liste "combo" elle, n'a qu'un nom d'objets, alors... j'en sais rien mdr. J'avais fait ça en 2009 je crois ou 2010. Mais suivant ma logique "bien à moi", j'aurai fait en sorte que la selection du combo s'affiche dans un champ "caché", auquel j'aurai attribué un nom de variable, ainsi j'aurai récupéré le choix de l'utiliisateur, au même type que les données qu'il aurait rentré...

c'est vrai que dès que ça touche aux script/code, je ne suis pas à l'aise du tout x/ hm... en ce sens heureusement qu'il y a des personnes qui comme toi sont à l'aise avec ça.... un logo, une bd, une pinup, du photoshop, "là" je suis comme un poisson dans l'eau mdr

Merci de ton aide et de ton analyse avertie, je verrais ça après mon mal de crâne, demain :D

Bonne soirée :)

--
Commenter la réponse de vegetalain

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.