Forum de discussions NFrance - Support offres dédiées et mutualisées
Vous n'êtes pas identifié.
Il me semble avoir bien suivi vos informations pour installer un formulaire de contact, mais je n'ai aucun retour. La fonction mail ne semble pas fonctionner.
Il s'agit de formulaire de la page :
http://www.cuisine-habitat-design.com/Contact.php3
qui retourne correctement cette page remplie des informations notées sur le formulaire :
http://www.cuisine-habitat-design.com/traitement.php3
mais je ne reçois aucune info sur ma messagerie.
Où ai-je loupé un épisode ?
Merci si vous pouviez m'aider à débloquer la situation.
Philippe Dubreuil
Hors ligne
Bonjour,
je cite votre script :
//On envoie un mail contenant les donn\xe9es mail("info@cuisine-habitat-design.c
om","Formulaire en ligne","$Name\n$Nom\n$Prenom\n$Adresse_1\n$Adresse_2\n$CP\n$V
ille\n$eMail\n$Tel\n$Precisions","From: info@cuisine-habitat-design.com\nReply-T
o: info@cuisine-habitat-design.com");^MY a comme un petit problème non ?
Hors ligne
Bonjour,
Vous voulez dire que la ligne de code doit être fermée avec ;?> sans doute.
C'est pourtant comme cela qu'est fermée cette ligne de code lorsque je transfère le fichier de mon pc sur votre serveur.
Et je ne m'explique pas comment il peut y avoir ;^M à la place, car je ne l'ai pas écris.
Donc je ne sais pas comment faire la modification car je ne sais pas comment accéder au fichier sur votre serveur.
J'ai refait le transfert plusieurs fois, après m'être appliqué à écrire cette ligne de code, et je n'ai toujours pas de mail en retour.
Ou s'agit-il d'une autre erreur ?
J'espère que vous pourrez me donner une solution.
Merci d'avance.
Cordialement.
Philippe Dubreuil.
Hors ligne
Bonjour,
ce que veut dire Joris c'est que la balise fermante de php ?> se trouve en bout de ligne commentée ///
Donc la balise fermante n'est pas interprétée ...
Faite simplement un retour à la ligne pour cette balise fermante.
PS: ^M est un code de retour à la ligne (fréquent lorsqu'un fichier venant du monde windows se retrouve sur un serveur unix/linus, mais cela n'a pas d'incidence pour votre problème présent.
Hors ligne
Merci pour votre intervention, mais je n'obtiens toujours pas de message mail en retour !
Voici ci-dessous le code tel que le télécharge sur votre serveur :
<body>
Les informations suivantes nous ont été envoyées : <br>
<?
//On affiche ici les informations saisies
echo " Civilité : $Name <br>";
echo " Nom : $Nom <br>";
echo " Prénom : $Prenom <br>";
echo " Adresse_1 : $Adresse_1 <br>";
echo " Adresse_2 : $Adresse_2 <br>";
echo " Code Postal : $CP <br>";
echo " Ville : $Ville <br>";
echo " Votre eMail : $eMail <br>";
echo " Votre Tel : $Tel <br>";
echo " Précisions : $Precisions <br>";
//On envoie un mail contenant les donnees mail("info@cuisine-habitat-design.com","Formulaire en ligne","$Name\n$Nom\n$Prenom\n$Adresse_1\n$Adresse_2\n$CP\n$Ville\n$eMail\n$Tel\n$Precisions","From: info@cuisine-habitat-design.com\nReply-To: info@cuisine-habitat-design.com");
?>
</body>
Je précise que la page traitement.php3 s'affiche après que le formulaire a été rempli et envoyé, mais ces informations ne sont toujours pas reçues par ma messagerie !
J'ai vraiment besoin que ce formulaire fonctionne... Je compte encore sur vous pour y arriver.
Merci pour votre aide et votre indulgence.
Philippe D.
Hors ligne
Bonjour,
il fallait que votre fonction mail(... soit elle-même en début de ligne pour ne pas faire partie du commentaire ...
PS. Veillez à sécuriser vos formulaires contre les injections d'headers : http://www.phpsecure.info/v2/article/Ma … Inject.php
Hors ligne
Merci Chrisker,
Cela fonctionne à présent, c'est parfait.
Mais serait-il possible de me montrer, en reprenant le code que j'ai copié sur mon message du 5/04, comment insérer la fonction mail en début de ligne... ? Je serai sûr à présent de réussir mes futurs formulaires de contact...
Si ce n'est trop demandé, comment sécuriser ce formulaire-ci, et quels risques peut-il courir?
Merci encore pour votre dévouement.
Cordialement.
Philippe Dubreuil
Hors ligne
Bonjour,
La fonction mail() s'utilise basiquement de cette façon :
<?php
mail('email_destinataire', 'sujet', 'message', 'entêtes');
?>
Plus d'infos : http://www.vulgarisation-informatique.com/mail.php
pour la sécurisation, comme indiqué dans le lien de mon post précédent, vous pouvez sécuriser vos scripts selon :
Pour sécuriser les failles d'injection d'headers mail, il doit y avoir plusieurs manières différentes. Une idée serait d'ajouter, après la ligne :
$from=$_POST["expediteur"];
le code suivant :
if (eregi("\r",$from) || eregi("\n",$from)){
die("Why ??
");
}
On voit que le script est stoppé grâce à une fonction die() si l'expediteur contient "\r" ou "\n". "\n" correspond à LF ou 0x0A/%0A en hexadecimal, c'est-à-dire le saut à la ligne, et "\r" correspond à CR ou 0x0D/%0D en hexadecimal ou "Carriage Return", c'est à dire le retour en début de ligne. Il arrive que les caractères %0A%0D soient utilisés à la place du simple %0A, mais c'est ce dernier caractère qui est réellement dangereux. Le filtre vérifie tout de même se caractère car il n'y a aucune autre raison que le piratage qu'il soit utilisé.
Hors ligne
Vraiment merci pour votre aide et vos explications.
Cordialement.
Philippe Dubreuil.
Hors ligne