Problème code php

Fermé
fighter666 Messages postés 5 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 11 juillet 2007 - 10 juil. 2007 à 15:45
fighter666 Messages postés 5 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 11 juillet 2007 - 11 juil. 2007 à 13:41
Bonjour,

j'ai un souci avec du code php.

Il s'agit en fait d'un formulaire mail. Je souhaite recevoir les résultats de mon formulaire dans ma boîte mail.

Lorsque je remplie le formulaire et que je valide, un message apparaît en me disant qu'il y a une erreur à la ligne 43.

Voici le code php avec l'indication de la ligne.

<?php
$to = 'xxxx@hotmail.fr';
$from = 'contact@video2mariage.com';
$entete  = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: $from <contact@video2mariage.com>\r\n";
$entete .= "Reply-to: $from\r\n";
$entete .= "X-Mailer: PHP";
$entete .= "X-Priority: 1\n";
$entete .= "Return-Path: <contact@video2mariage.com>\n";
$msg   = 'formulaire video2mariage';
$sujet = 'Demande de renseignements';
Nom: ".$_POST['nom']\n";  <!--ligne43-->
Prénom: ".$_POST['prenom']\n";
Adresse:  ".$_POST['adresse']\n";
Téléphone (fixe): ".$_POST['telephone']\n";
Téléphone (mobile): ".$_POST['gsm']\n";
E-mail: ".$_POST['email']\n";
Date du mariage: ".$_POST['date']\n";
Lieu du mariage: ".$_POST['lieu']\n";
Bouquet désiré: ".$_POST['bouquet']\n";
Vos commentaires: ".$_POST['commentaires']\n";
if(mail($to,$sujet,$msg,$entete))
{
echo "";
}
else
{
echo "Une erreure s'est produite";
}
?>


Quelqu'un voit-il où je me suis trompé?

Par avance merci pour votre aide.
A voir également:

8 réponses

J'aurai essayé ça :
"Nom : " . $_POST['nom']\n;
(suivre le modèle pour le reste)

mais bon j'en suis pas sur du tout...
0
webtotoche Messages postés 69 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 3 novembre 2007 7
10 juil. 2007 à 16:07
Salut,

Quelqu'un voit-il où je me suis trompé?

Oui.

$msg   = 'formulaire video2mariage';
$sujet = 'Demande de renseignements';
Nom: ".$_POST['nom']\n";  <!--ligne43-->
Prénom: ".$_POST['prenom']\n";


Avant la ligne 43 tu affectes des valeurs aux variables $to, $from , $entete, $msg, $sujet.

A partir de la ligne 43 on imagine que tu veux faire de même mais... Où sont indiquées les noms des variables à initialiser ?



Par avance merci pour votre aide.

De rien (ou presque).

(En voila de la réponse compétente et réactive ! :D )
0
Complément de réponse :

<?php
$to = 'xxxx@hotmail.fr';
$from = 'contact@video2mariage.com';
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: $from <contact@video2mariage.com>\r\n";
$entete .= "Reply-to: $from\r\n";
$entete .= "X-Mailer: PHP";
$entete .= "X-Priority: 1\n";
$entete .= "Return-Path: <contact@video2mariage.com>\n";
$msg = 'formulaire video2mariage';
$sujet = 'Demande de renseignements';
$msg .= "Nom : " . $_POST['nom']\n;
$msg .= "Prenom : " . $_POST['prenom']\n;
...
if(mail($to,$sujet,$msg,$entete))
{
echo "";
}
else
{
echo "Une erreure s'est produite";
}
?>
0
fighter666 Messages postés 5 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 11 juillet 2007
10 juil. 2007 à 17:17
Merci clem pour ton aide.

J'ai testé ton code mais des messages d'erreurs apparaîssent :

Warning: Unexpected character in input: '\' (ASCII=92) state=1 in d:\www\video2mariage.com\htdocs\email.php on line 43

Parse error: parse error, unexpected T_STRING in d:\www\video2mariage.com\htdocs\email.php on line 43

J'ai essayé en corrigant et en définissant de cette façon :

$msg .= $nom = $_POST['nom'];
$msg .= $prenom = $_POST['prenom'];
.....


Le formulaire part bien, le php me confirme que le message a bien été envoyé mais je ne reçois rien.

Mon mail fonctionne, j'ai vérifié quand même, mais le résultat du formulaire n'arrive pas dans la boîte.
0
ixtobilly Messages postés 44 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 20 février 2009 4
10 juil. 2007 à 19:50
J'ai apporté quelques corrections à ton code pour supprimer les messages d'erreur.

Quant au fait que tu ne reçoive pas de mail, as tu vérifié le contenu de tes variables ?

Disposes tu d'une infrastructure te permettant d'envoyer des mails ?

<?php
$to = 'xxxx@hotmail.fr';
$from = 'contact@video2mariage.com';
$entete = "MIME-Version: 1.0\r\n";
$entete .= "Content-type: text/html; charset=iso-8859-1\r\n";
$entete .= "From: $from <contact@video2mariage.com>\r\n";
$entete .= "Reply-to: ".$from."\r\n";
$entete .= "X-Mailer: PHP";
$entete .= "X-Priority: 1\n";
$entete .= "Return-Path: <contact@video2mariage.com>\n";
$msg = 'formulaire video2mariage';
$sujet = 'Demande de renseignements';
$msg .= "Nom : " . $_POST['nom']."\n";
$msg .= "Prenom : " . $_POST['prenom']."\n";
...
if(mail($to,$sujet,$msg,$entete))
{
echo "";
}
else
{
echo "Une erreure s'est produite";
}
?>
0

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

Posez votre question
fighter666 Messages postés 5 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 11 juillet 2007
11 juil. 2007 à 08:54
Merci pour avoir corriger les erreurs, j'étais complètement perdu.

Mais qu'est ce que tu entends par infrastructure pour envoyer des mails?

En fait, si tu veux, mon hébergeur à changer son serveur mail et pour éviter le spam, lorsque que l'on réalise un envoi mail en php (dans mon cas, j'ai un formulaire de contact et je reçois les résultats de ce formulaire par mail), ils font remplir correctement les entêtes .

Mais j'ai essayé et cela ne fonctionne toujours pas, je ne reçois pas les résultats du formulaire par mail.
Pourtant, lorsque je remplis les champs du formulaire et que je clique sur envoyer, j'ai la page de confirmation qui m'indique que mon mail a bien été envoyé.
0
ixtobilly Messages postés 44 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 20 février 2009 4
11 juil. 2007 à 10:53
J'entends pas infrastructure: l'OS, le serveur de mail, etc

En fait ton problème peut être du à des paramètres de sécurité de ton hébergeur qui ne permet pas d'envoyer des mails depuis son installation d'autant plus que la façon la plus facile de spamer est d'écrire du code d'envoi de mail et le mettre ds une boucle infinie.

La fonction mail n'est pas mise en cause ce qui fait que ton compilateur PHP ne te signale pas d'erreur. Tu reçois même la confirmation d'envoi. Mais le mail doit être bloqué au niveau du système.

Je te conseille de poser le problème à ton hébergeur et de lui demander s'il permet d'envoyer des mail depuis son infrastructure.

Mais avant fais un test sur une machine que tu as en local comportant un serveur de mail
0
fighter666 Messages postés 5 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 11 juillet 2007
11 juil. 2007 à 11:52
J'ai fait le test à mon hébergemnt free et tout fonctionne.

Je reçois bien les résultats de mon formulaire par mail.
0
fighter666 Messages postés 5 Date d'inscription mardi 10 juillet 2007 Statut Membre Dernière intervention 11 juillet 2007
11 juil. 2007 à 13:41
J'ai trouvé la solution.

En fait, mon hébergeur ne précisait pas la valeur à mettre de la variable $to.

Le code exact est en fait celui-ci. Sur la varaible $to il faut indiquer une adrese mail valide mais pas associé avec le domaine (ex : erik@hotmail.com et non erik@mondomaine.com).

J'ai fait le test, impeccable.

Par contre, je reçois le résultat de mon formulaire par mail sans mise en page, le texte forme une seule et même phrase.

Sais tu comment mettre en page ce que l'on reçoit par mail.
0