Fonction MAil, PHP.

Résolu/Fermé
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010 - 29 janv. 2010 à 13:18
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 - 29 janv. 2010 à 17:01
Bonjour,
Je suis entrain de réaliser un formulaire qui est censé permettre au visiteur de rentrer en contact avec moi via un mail. Et ben forcement j'ai une erreur Parse error: syntax error, unexpected T_VARIABLE

Voici mon formulaire

<form method="post" action="xxx.php?page=pres_contact.php">


<fieldset>
<p>
<input type="radio" name="civi" value="Monsieur" checked="checked" /> Monsieur
<input type="radio" name="civi" value="Madame" /> Madame


<br />
<label for="nom">Votre nom</label> : <br />
<input type="text" name="nom" id="nom" />

<br />


</fieldset>

<br />

<fieldset>

<br />

<label for="adress_client">Votre adresse</label> : <br />
<input type="text" name="adress_client" id="adress_client" />

</fieldset>

<br />

<fieldset>

<br />

<label for="question">Votre question concerne</label><br />
<select name="question" id="question">
<option value="autre">Autre</option>
<option value="location">Location</option>
<option value="copro">Copro</option>

</select>


<br /> <br />

<label for="message">Message</label><br />
<textarea name="message" rows="8" cols="75" id="message"></textarea>

</fieldset>

</p>

<p>
<input type="submit" /> <input type="reset" />
</p>

</form>



Qui envoi sur ;

<?php
$destinataire = "MON_ADRESSE_PERSO@test.com";
$expediteur = $_POST['adress_client'];
$reponse = $expediteur;

mail($destinataire, $_POST['civi'] $_POST['nom'] "au sujet de"$_POST['question'], (ca bloque ici)
$_POST['message'],
"From: $expediteur\r\nReply-To: $reponse");

?>

Donc je me trompe dans la manière de déclarer mon sujet? Auriez vous une idée sur la manière correct de faire?

Dans un deuxième temps un message de confirmation de l'envoi ne serai pas de trop et je me ballade sur les forums en essayant de comprendre comment faire mais j'avoue avoir un peu de mal

if (xxxxxxxxxxxx)
{ echo "<p> Le mail n'a pas été envoyé car un problème est survenu...</p>" ; }

else
{ echo "<p> L'email a été envoyé avec succès ! </p>" ; }

Je ne vois pas quoi mettre dans mon if... Comment demandé au serveur si le mail est bien passé?


(ps: j'ai fait un echo et toute mes variables sont bien envoyé vers ma 2eme page)

Merci de votre aide :)


Mahara
A voir également:

15 réponses

TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
29 janv. 2010 à 13:42
mail($destinataire, $_POST['civi'] $_POST['nom'] "au sujet de"$_POST['question'], (ca bloque ici) 
$_POST['message'], 
"From: $expediteur\r\nReply-To: $reponse"); 


il faut juste concatener tes variables ! si tu mets:
$age=2; echo "j'ai " $age "ans";
cela ne marche pas: il y a un caractère pour coller les chaines ensemble (ce qu'on appele concatener) c'est le point .
"j'ai ".$age." ans"
remplace par ca:
<code>
mail($destinataire, $_POST['civi'].$_POST['nom']." au sujet de ".$_POST['question'],  
$_POST['message'], 
"From: $expediteur\r\nReply-To: $reponse"); 

ou mieux:
$_POST['civi'].$_POST['nom'] => $_POST['civi'].". ".$_POST['nom']
MonsieurBertrand => Monsieur. Bertrand

That's all Folks !



1
Bertrand40 Messages postés 1196 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 194
29 janv. 2010 à 13:28
Bonjour,

Je te mets la syntaxe que j'utilise pour l'envoi de mails (à une personne, sans Bcc) :

$mail = 'y@y.y';
$headers ='From: "x"<x@x.x>'."\n";
$headers .='Reply-To: x@x.x'."\n";
$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
$headers .='Content-Transfer-Encoding: 8bit';

mail($mail, 'Objet', 'ton texte', $headers);

Ca t'aidera peut-être.
0
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
29 janv. 2010 à 13:33
bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

https://www.php.net/manual/fr/function.mail.php

quelques recherches vite fait, il semblerait déja que tes parametres de la fonction mail ne soient pas dans le bon ordre, et il manque des virgules, ou jme trompe ?
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
29 janv. 2010 à 13:42
Pour le message de confirmation de reception, je ne sais pas trop mais je vais regarder. Pour le reste, sa donne sa:
<code>
$destinataire = "monadresse@toto.com";
$expediteur = $_POST['adress_client'];
$reponse = $expediteur;
$sujet = $_POST['civi'].' '.$_POST['nom'].' au sujet de '.$_POST['question'];

if(mail($destinataire, $sujet, $_POST['message'])) {
echo 'message bien envoyé';
}
else
{
echo 'rate';
}</code
0

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

Posez votre question
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
29 janv. 2010 à 13:48
J'ai suivi PHPFrance
mail("adresse email destinataire","sujet","corps du message","options");

et pour les virgules manquante, je voudrai que la partie "sujet du message" se compose des valeurs de ces variables ($_POST['civi'] $_POST['nom'] "au sujet de"$_POST['question']) et je ne sais pas comment les l'écrire, si je met une virgules vas t'il comprendre que ca reste le sujet?? j'ai essayé les ; les " les ' et je suis a cour d'idée.... a moins que je n'arrive a crée une variable qui sera composé des caractères qui m'intéresse...

$_sujet = $_POST['civi'] $_POST['nom'] "au sujet de"$_POST['question']


Mais la aussi je ne vois pas comment déclarer la $_sujet

Merci de vos post!

Mahara
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
29 janv. 2010 à 13:53
La célèbre concaténation!!! Forcement!

Je viens d'essayer et presque "Parse error: syntax error, unexpected T_DOUBLE_ARROW" ..... je cherche ce que ca peut etre

EDIT

Erreur au niveau du "." Sinon ca semble marcher! Reste plus qu'a le mettre en ligne histoire d'être sur mais deja en local il n'y a plus d'erreur
Merci TiboleParano

Mahara
0
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
29 janv. 2010 à 14:10
je cherche ...
0
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
29 janv. 2010 à 15:22
t'as réussi à situer plus précisement d'où venait le prb ? dsl d'avoir pas encore trouvé, je suis sur autre chose en même temps
0
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
29 janv. 2010 à 15:25
et tu peux essayer le code de Camuke qui est bien rédigé jtrouv:
$sujet = $_POST['civi'].' '.$_POST['nom'].' au sujet de '.$_POST['question']; 

if(mail($destinataire, $sujet, $_POST['message'])) echo 'message bien envoyé';  
else echo 'rate'; 

qui te permet en plus d'avoir la confirmation de l'envoi du mail, pas encore la réception par contre ...
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
29 janv. 2010 à 15:25
non pas encore, tout semble etre bon.. quand je test avec "<br />" ou avec n'importe quoi d'autre y'a pas de soucis....

Mahara
0
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
29 janv. 2010 à 15:53
ba enleves le point et met un espace simple, ou essay \. à la place (il a ptet un caractère "spécial" dù à je ne sais quel règle du serveur ou pHp ...)
heureux que sa marche n'empeches
0
Camuke Messages postés 224 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 12 août 2011 88
29 janv. 2010 à 16:00
Le code de ton envoie de mail ne marche toujours pas? As tu essayé mon code plus haut car sur mon hebergeur free sa marche.

Je pense aussi avoir trouver une solution pour que la personne qui t'envoie le mail de contact reçoivent un mail quand tu lira le message qu'elle t'envoie. (si c'est bien se que tu veux, ceux dont je ne suis pas sur)
0
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
29 janv. 2010 à 16:10
hey hey hey j'ai trouvé une fonction d'accusé de reception, jpense que tu en voulais une pour valider à l'utilisateur a bien recu le mail (et cela te permet (peut-être) de vérifier la validité d'une adresse mail)

https://forums.commentcamarche.net/forum/affich-221678-accuse-reception-ac-la-fction-mail-php


c'est tout simplement un champs en + dans les headers :)
mais dur de choper la réponse, faut ptet créé une boite mail bidon qui recevrait les accusés, et un script qui les lit ... faut voir
sinon pour envoyer un mail à l'utilisateur pour accuser confirmation c'est tout bête:
 IF( #le mail est envoyé#) mail($email_utilisateur, 'Votre question a bien été prise en compte", "Bonjour</br>Votre question sur le site TONSITE a bien été prise en compte</br>Nous vous répondrons sous les meilleurs délais,</br>Cordialement.")
else (#Il a rien recu# ...)
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
29 janv. 2010 à 16:19
Ben avec un espace pas de soucis ca marche, ce sera tres bien ....

Excellent, je regarde ca ce soir!!!

Merci de ton Aide!!! et merci d'avoir cherché pour l'accusé de réception!!!!!

Mahara
0
TiboleParano Messages postés 498 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 7 avril 2015 61
29 janv. 2010 à 17:01
Have Fun :-]
0