8796 sujets

Développement web côté serveur, CMS

Bonjour,

Grâce aux forum, j'utilise un peu de php...(on ne se moque pas, je n'en suis qu'au formulaire de contact Smiley cligne

Je récupère les infos par email.

Mais je souhaiterai rendre le champ email obligatoire.(par exemple)
Mais bien sûr, je ne sais Aaabsoluement pas comment m'y prendre!

Voici mon code php:
<?php

	$nom = $_POST['nom']; 
	$prenom = $_POST['prenom']; 
	$adresse = $_POST['adresse']; 
	$code_postal = $_POST['code_postal']; 
	$ville = $_POST['ville']; 
	$pays = $_POST['pays']; 
	$commentaire = $_POST['commentaire'];
	$mail_contact = $_POST['mail'];
	
	
	
	
	$headers = "MIME-Version: 1.0\r\n"; 
 
	
	$headers .= "Content-type: text/plain; charset=iso-8859-1\r\n"; 
 
	
	$headers .= "From: $nom\r\nReply-to : <$mail_contact>\nX-Mailer [langue]HP";
	
	
	
	$subject="Message venant du site"; 
	$destinataire="email@gmail.com"; 
	$body	="Message venant de : ".$prenom." ".$nom.".\n";
	$body	.= "Habitant ".$adresse.".\n";
	$body	.= "Code postal : ".$code_postal.".\n";
	$body	.= "Ville : ".$ville.".\n";
	$body	.= "Pays : ".$pays.".\n";
	$body	.= "Le message est le suivant : ".$commentaire.".\n";

	
	mail($destinataire,$subject,$body,$headers);
	echo "<h1><center>Le mail a bien été envoyé. Retour au <a href=http://www.monsite.com>site</a></center></h1>"
?>



Merci pour votre aide Smiley cligne
Au plus simple tu insères une condition de contrôle :

$nom = $_POST['nom']; 
	$prenom = $_POST['prenom']; 
	$adresse = $_POST['adresse']; 
	$code_postal = $_POST['code_postal']; 
	$ville = $_POST['ville']; 
	$pays = $_POST['pays']; 
	$commentaire = $_POST['commentaire'];
	$mail_contact = $_POST['mail'];

if( (isset($_POST['mail']) && (!empty($_POST['mail']) ) {
        => suite de ton script : envoi du mail
}
else {
        => message d'alerte + réafficher le formulaire avec les valeurs déjà récupérées
}


Si la var mail est absente ou vide le mail ne part pas et le script contraint à donner le renseignement. Dans la pratique il faudra aussi ajouter une regex pour détecter que le mail est valide mais ça sera l'étape suivante Smiley cligne
Salut,

à partir de PHP5 c'est beaucoup plus simple grâce à
if (!filter_var($mail_contact, FILTER_VALIDATE_EMAIL)) {
   // erreur
}
Bonjour et merci pour ta réponse,

Je viens d'essayer, ça ne fonctionne pas, je peux encore laisser le champ email vide, et le message part bien. (faut-il mettre cette "phrase" à un endroit bien spécifique du code?)

Comme je n'y comprends pas (encore) grand chose au php, je te pose quand même la question:

Cette phrase, il faut bien la mettre sur le fichier "traitement.php", à moins qu'il faille la mettre dans la feuille html? (je sais qu'on peut mélanger les deux langages)

Merci pour ton aide,

Smiley cligne
Salut,

hem... visiblement tu en es au tout début de ton apprentissage. Smiley murf

Du coup il faudrait t'expliquer pas à pas en partant du début comment fonctionne PHP et ce n'est pas le rôle d'Alsacréations. Je t'invite à consulter un site dédié à l'apprentissage dont tu trouveras une liste (non exhaustive) dans l'annonce de ce salon. On peut également mentionner le site du zero - les formulaires.