Envoi d'un mail flash php

Résolu
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022 - Modifié par vegetalain le 14/02/2014 à 16:29
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022 - 14 févr. 2014 à 20:21
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

11 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
14 févr. 2014 à 17:06
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).

0
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... ^_^
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 17:52
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

--
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
14 févr. 2014 à 18:48
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.
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 18:50
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".
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 18:58
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', )
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
14 févr. 2014 à 19:02
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
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 19:43
ç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à
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 18:41
@ 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

--
0

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

Posez votre question
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 18:48
Ca remarche..

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

--
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 19:04
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é
0
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 ^_^
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
14 févr. 2014 à 19:14
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.
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 19:14
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
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 19:19
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...
0
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 !! ^_^
0
vegetalain Messages postés 747 Date d'inscription mardi 25 mars 2003 Statut Membre Dernière intervention 11 août 2022
14 févr. 2014 à 20:21
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 :)

--
0
Rejoignez-nous