Mammouth du PHP |
985 Messages
03 avr. 2010, 22:32
Bonjour,
$_POST est toujours défini, car c'est une Super Gloglale, donc un isset($POST) retournera toujours
true.
Par contre un !empty($_POST) -> non.
Donc:
if(!empty($_POST) && isset($_POST['Email']) && isset($_POST['Message'])){
Ensuite, il est plutôt déconseillé d'utiliser
extract() avec les variables
$_POST.
Surtout que tu fais des
isset() et
empty(), donc ici en plus c'est inutile.
Donc:
<?php
// Si $_POST n'est pas vide et que les champs du formulaire Email et Message sont envoyés
if (!empty($_POST) && isset($_POST['Email']) && isset($_POST['Message'])) {
// Si les champs Nom, Email et Message ne sont pas vides
if (!empty($_POST['Nom']) && !empty($_POST['Email']) && !empty($_POST['Message'])) {
// L'email Destinataire
$destinataire = 'contact@**********.com';
// Le sujet
$sujet = 'Camping ! ';
// Le message
$msg = 'Nouveau mail du site' . "\n";
$msg .= 'Email : ' . $_POST['Email'] . "\n";
$msg .= 'Message : ' . $_POST['Message'];
// L'entête
$entete = 'From: ' . $_POST['Email'] . "\n";
$entete .= 'Reply-To: ' . $_POST['Email'];
// envoie de l'email
mail($destinataire, $sujet, $msg, $entete);
} else {
echo "Vous n'avez pas rempli tous les champs";
}
}
En complément il faut protéger les variables qui sont postées par le formulaire de possibles injections:
http://www.phpsecure.info/v2/article/Ma ... Inject.php
Et regarde aussi les exemples du manuel ainsi que les commentaires
http://fr.php.net/manual/fr/function.mail.php
PS:
Attention, il y a une majuscule dans chaque nom de champ du formulaire du script php ici:
$_POST['Email'], $_POST['Message'] et $_POST['Nom']
Donc il faut que les champs du formulaire
html utilisent la même casse

Modifié en dernier par
Dr@ke le 03 avr. 2010, 23:07, modifié 8 fois.
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.