Vérification champs vide

Vérification champs vide - PHP - Programmation

Marsh Posté le 30-10-2011 à 12:12:10    

Bonjour,
 
Je m'adresse a vous ajd car j'ai un soucis avec un formulaire que j'ai fais en partant d'un gabarit trouvé sur google. (Car je suis débutant et je ne connais pas le php)
Le soucis c'est que la vérification des champs vides ne fonctionne pas.
Lorsque je click sur envoyer alors que je ne remplis rien, il m'envois sur la page de remerciement, mais je ne recois pas l'email.
Or ce que je souhaiterai, c'est qu'une fenetre apparaisse en disant: Veuillez mettre un ... (nom ou prénom ou adresse ou telephone ou email)
Je vous colle le .php  
 
Si vous arrivez a trouver l'erreur, je vous en serai toujours reconnaissant lol
 
Merci d'avance.
 
<?php
 /*
 ********************************************************************************************
 CONFIGURATION
 ********************************************************************************************
 */
 // destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
 $destinataire = 'contacte@airsoftexperience.be';
 
// copie ? (envoie une copie au visiteur)
 $copie = 'oui'; // 'oui' ou 'non'
 
// Messages de confirmation du mail
 header('Location: http://www.airsoftexperience.be/merci.html');
 
 // Messages d'erreur du formulaire
 $message_erreur_formulaire = "Vous devez d'abord envoyer le formulaire.";
 $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
 
/*
 ********************************************************************************************
 FIN DE LA CONFIGURATION
 ********************************************************************************************
 */
 
 
// on teste si le formulaire a été soumis
 if (!isset($_POST['envoi']))
 {
 // formulaire non envoyé
 echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
 }
 else
 {
 /*
 * cette fonction sert à nettoyer et enregistrer un texte
 */
 function Rec($text)
 {
 $text = trim($text); // delete white spaces after & before text
 if (1 === get_magic_quotes_gpc())
 {
 $stripslashes = create_function('$txt', 'return stripslashes($txt);');
 }
 else
 {
 $stripslashes = create_function('$txt', 'return $txt;');
 }
 
// magic quotes ?
 $text = $stripslashes($text);
 $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
 $text = nl2br($text);
 return $text;
 };
 
/*
 * Cette fonction sert à vérifier la syntaxe d'un email
 */
 function IsEmail($email)
 {
 $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
 return (eregi($pattern,$email)) ? true : false;
 };
 
// formulaire envoyé, on récupère tous les champs.
 $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
 $email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
 $adresse = (isset($_POST['adresse'])) ? Rec($_POST['adresse']) : '';
 $telephone = (isset($_POST['telephone'])) ? Rec($_POST['telephone']) : '';
 $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
 $paiement = (isset($_POST['paiement'])) ? Rec($_POST['paiement']) : '';
 $modele = (isset($_POST['modele'])) ? Rec($_POST['modele']) : '';
 $prix = (isset($_POST['prix'])) ? Rec($_POST['prix']) : '';
 
// On va vérifier les variables et l'email ...
 $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
 
if (($nom != '') && ($email != '') && ($adresse != '') && ($telephone != '') && ($prenom != '') && ($paiement != '') && ($modele != '') && ($prix != ''))
 {
 // les variables sont remplies, on génère puis envoie le mail
 $headers = 'From: '.$email.'' . "\r\n";
 
// envoyer une copie au visiteur ?
 if ($copie == 'oui')
 {
 $cible = $destinataire.','.$email;
 }
 else
 {
 $cible = $destinataire;
 };
 
// Remplacement de certains caractères spéciaux
 $message = str_replace("'","'",$message);
 $message = str_replace("’","'",$message);
 $message = str_replace("&quot;",'"',$message);
 $message = str_replace('<br>','',$message);
 $message = str_replace('<br />','',$message);
 $message = str_replace("&lt;","<",$message);
 $message = str_replace("&gt;",">",$message);
 $message = str_replace("&amp;","&",$message);
 $message = str_replace("&eacute;","é",$message);
 $message = str_replace("&egrave;","è",$message);
 $message = str_replace("&euro;","€",$message);  
 
 
 
$message = 'Nom : '.$nom."\r\n\r\n";
 $message .= 'Prénom : '.$prenom."\r\n\r\n";
 $message .= 'Adresse : '.$adresse."\r\n\r\n";
 $message .= 'Téléphone : '.$telephone."\r\n\r\n";
 $message .= 'Modèle : '.$modele."\r\n\r\n";
 $message .= 'Prix : '.$prix."\r\n\r\n";
 $message .= 'Type De Paiement : '.$paiement."\r\n";
 
 
 
// Envoi du mail
 if (mail($cible, 'Nouvelle Commande', $message, $headers))
 {
 echo '<p>'.$message_envoye.'</p>'."\n";
 }
 else
 {
 echo '<p>'.$message_non_envoye.'</p>'."\n";
 };
 }
 else
 {
 // une des 3 variables (ou plus) est vide ...
 echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
 };
 }; // fin du if (!isset($_POST['envoi']))
 ?>  

Reply

Marsh Posté le 30-10-2011 à 12:12:10   

Reply

Marsh Posté le 30-10-2011 à 13:32:13    

Bonjour,
 
Le principe est de tester si les variables de type POST que tu reçois (nom, prénom, téléphone...) ne sont pas vide. Pour se faire, on utilise soit la fonction "empty" ou on regarde si la variable est différente de "rien" :
 
if (empty($_POST['nom']))
        echo 'Champ vide';
 
if ($_POST['nom'] == '')
        echo 'Champ vide';

Reply

Marsh Posté le 30-10-2011 à 14:15:21    

OK ok, mais je ne vois pas ou mettre cela, ni comment le formuler...
 
Mais ce que ne je comprend pas dans mon code, ce sont ces 2 parties la:
 
// On va vérifier les variables et l'email ...  
 $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
   
if (($nom != '') && ($email != '') && ($adresse != '') && ($telephone != '') && ($prenom != '') && ($paiement != '') && ($modele != '') && ($prix != ''))
  {  
 // les variables sont remplies, on génère puis envoie le mail  
 $headers = 'From: '.$email.'' . "\r\n";  
   
// envoyer une copie au visiteur ?  
 if ($copie == 'oui')  
 {  
 $cible = $destinataire.','.$email;  
 }  
 else  
 {  
 $cible = $destinataire;  
 };  
 
 
 
// Envoi du mail  
 if (mail($cible, 'Nouvelle Commande', $message, $headers))  
 {  
 echo '<p>'.$message_envoye.'</p>'."\n";  
 }  
 else  
 {  
 echo '<p>'.$message_non_envoye.'</p>'."\n";  
 };  
 }  
 else  
 {  
 // une des 3 variables (ou plus) est vide ...  
 echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
  };  
 }; // fin du if (!isset($_POST['envoi']))  
 ?>  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed