Fonction MAil, PHP.

Résolu
Mahara Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
TiboleParano Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   61
 
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   Statut Membre Dernière intervention   194
 
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   Statut Membre Dernière intervention   61
 
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   Statut Membre Dernière intervention   88
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   61
 
je cherche ...
0
TiboleParano Messages postés 498 Date d'inscription   Statut Membre Dernière intervention   61
 
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   Statut Membre Dernière intervention   61
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   61
 
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   Statut Membre Dernière intervention   88
 
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   Statut Membre Dernière intervention   61
 
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   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   61
 
Have Fun :-]
0