formulaire de contact: 1 des 2 champs obligatoire

WRInaute discret
Bonjour,

J'ai créé un formulaire de contact, certain champs sont obligatoire d'autres non. Jusque là tout va bien...

J'ai 2 champs: email et téléphone, mais seulement un des deux champs est obligatoire, c'est l'internaute qui choisi s'il préfère laisser son email ou son téléphone (il me faut un des deux!).

Le problème est que une fois mes champs obligatoire rempli et que l'internaute click sur envoyer, un message lui dit : un des 2 champs est obligatoire et aussi un autre message qui lui dit :votre message a bien été envoyé (Je reçois bien le message malgrès que le champs email et téléphone sont vide (alors que j'en veux au moins un des deux!).

Quelqu'un peut me dire où se trouve mon erreur dans mon code?

Code:
<?php
function connectije(){
	$base= mysql_connect ('localhost','root','');
	mysql_select_db ('ije',$base);
}

if(isset($_POST['envoi'])){
	$champs_vide=array();
		
	if (empty($_POST['nom'])){
		 $champs_vide[]='Nom - ';
	}
	
	if (empty($_POST['prenom'])){
		 $champs_vide[]='Prénom - ';
	}	
	
		
   if (empty($_POST['email']) && empty($_POST['tel'])){
   
       echo('Vous devez renseigner au moins 1 champ !');
  }
  
   if (empty($_POST['message'])){
		 $champs_vide[]='message - ';
	}

	
	
	if (empty ($champs_vide)){
		
	$nom=$_POST['nom'];	
    $prenom=$_POST['prenom'];
	$adresse=$_POST['adresse'];
	$postal=$_POST['postal'];
	$ville=$_POST['ville'];
	$email=$_POST['email'];	
	$tel=$_POST['tel'];
	$message=$_POST['message'];
	
	
	
echo ' <div style="padding-left:240px; margin-top: 10px; margin-bottom:-10px">Votre message a bien été envoyé.</div>';
	
	
	connectije();
	
	$sql='INSERT INTO contact VALUES("","'.$nom.'","'.$prenom.'","'.$adresse.'","'.$postal.'","'.$ville.'","'.$email.'","'.$tel.'","'.$message.'",NOW())';
	
	mysql_query($sql) or die('Erreur SQL!'.$sql. '<br>' .mysql_error());
	
	mysql_close();
	}
	else {
		echo '<div style="padding-left:200px; color:red; margin-bottom: -15px"><h4 style="padding-left:50px; padding-bottom:10px">Les champs suivant sont obligatoires :</h4> <span style="text-align="center">' .implode($champs_vide).'</span></div>';
		
	}
}
	
?>

<div id="contact" class="contact">

     <div id="gauche" class="gauche">
          <img src="images/fleche.jpg">
          
          <h3 style="margin-top:15px">POURQUOI ADHERER A IJE</h3><br />
          
             <ul>
                 <li  style="list-style-image: url(images/fleche_boule_violet.jpg); color:#8B0369">
                      La pluridisciplinarité permet une analyse complète de la situation et donne une prestation de qualité !
                 </li><br />
                 
                 <li  style="list-style-image: url(images/fleche_boule_orange.jpg); color:#E34619">
                     Aujourd’hui plus de plus de 100 sollicitations et plus de 45 adhérents !
                 </li><br />
                 
                 <li  style="list-style-image: url(images/fleche_boule_violet.jpg); color:#8B0369">
                     Une gamme de services JURIDIQUES adaptés à vos besoins, en collaboration avec les AVOCATS partenaires de l’association !
                 </li><br />
                 
                 <li  style="list-style-image: url(images/fleche_boule_orange.jpg); color:#E34619">
                     Vous êtes plus forts, vous n’êtes plus seuls !
                 </li><br />
                 
                 <li  style="list-style-image: url(images/fleche_boule_violet.jpg); color:#8B0369">
                     Vous exprimez vos préoccupations !
                 </li><br />
                 
                 <li  style="list-style-image: url(images/fleche_boule_orange.jpg); color:#E34619">
                     Vous faites partie d’une association, quel que soit votre problème juridique ou professionnel, quelqu’un dans le réseau                     l’a résolu !
                 </li><br />
                 
                 <li  style="list-style-image: url(images/fleche_boule_violet.jpg); color:#8B0369">
                     Vous avez un interlocuteur privilégié qui vous connaît, vous écoute et vous assiste au quotidien !
                 </li><br />
                 
                 <li  style="list-style-image: url(images/fleche_boule_orange.jpg); color:#E34619">
                     Vous êtes écoutés, vos intérêts sont défendus ,Vous êtes efficacement représentés!
                 </li><br />
                 
                 <li style="list-style-image: url(images/fleche_boule_violet.jpg); color:#8B0369">
                     Vous suivez en direct l’action de l’association ije en ligne, Vous pouvez l’orienter !
                 </li><br />
             </ul>
             
             <span style="font-size:23px; letter-spacing:5px; margin-left:50px; color:#4A5F00; font-weight:bolder">Vous êtes gagnant!</span><br /><br />
             
                 <p style="text-align:justify; padding-right:20px">
                     Nous vous assurons un réel retour sur cotisation : en adhérant, vous n’êtes plus jamais seul face à vos difficultés.                     Adhérer vous donne accès à toute une gamme de services, ce qui vous assure une qualité permanente d’écoute et de réponses                     à vos besoins. 
                 </p>   
	
	                    
     </div><!--Ferme gauche-->
                     
     <div id="separateur" style="background-image:url(images/motifvertical.jpg)"></div>
                                          
     <div id="droite" class="droite">

          <img src="images/fleche.jpg">
       
          <h3 style="margin-top:15px">FORMULAIRE DE CONTACT</h3><br />
         
         <div style="border:solid 0px #F00; padding-bottom:7px; padding-left:10px" >
         
          <form name="Formulaire" action="index.php?contenu=contact" method="post" onSubmit="return verification()" >

      <table border="0" cellpadding="10" cellspacing="10">
             <tr>
                <td><label for="nom">Nom* : </label></td> 
                <td><input type="text" id="nom" name="nom" maxlength="60" value="<?php if (isset($_POST['envoi'])){echo $_POST['nom'];} ?>"></td>
             </tr>   
             
             <tr>
                <td><label for="prenom">Prénom* : </label></td>
                <td><input type="text" id="prenom" name="prenom" maxlength="60" value="<?php if (isset($_POST['envoi'])){echo $_POST['prenom'];} ?>"></td>
             </tr>
             
             <tr>
                <td><label for="adresse">Adresse : </label></td>
                <td><input type="text" id="adresse" name="adresse" maxlength="60" value="<?php if (isset($_POST['envoi'])){echo $_POST['adresse'];} ?>"></td>
             </tr>
             
             <tr>
                <td><label for="postal">Code Postal : </label></td>
                <td><input type="text" id="postal" name="postal" maxlength="5" value="<?php if (isset($_POST['envoi'])){echo $_POST['postal'];} ?>" /> </td>
             </tr>
             
             <tr>
                <td><label for="ville">Ville : </label></td>
                <td><input type="text" id="ville" name="ville" maxlength="60" value="<?php if (isset($_POST['envoi'])){echo $_POST['ville'];} ?>" /></td>
             </tr> 
             
             <tr>
                <td><label for="email">Email** : </label></td>
                <td><input type="text" id="email" name="email" maxlength="60" value="<?php if (isset($_POST['envoi'])){echo $_POST['email'];} ?>" /></td>
             </tr>  
                              
             <tr>
                <td><label for="tel"> Téléphone** :</label></td>
                <td><input type="text" name="tel" maxlength="60" value="<?php if (isset($_POST['envoi'])){echo $_POST['tel'];} ?>" ></td>
             </tr>     
                          
      </table>
      
             <table border="0" cellpadding="0" cellspacing="0">
             
                    <tr style="height: 10px"></tr>              
             
                    <tr>
                       <td> <label for="message"> Votre message : <br/></label>
                            <textarea id="message" name="message" cols="40" rows="8" <?php if (isset($_POST['envoi'])){echo $_POST['prenom'];} ?>></textarea>
                       </td>                               
                   </tr>
                   
                   <tr style="height:10px"></tr>
             
                   <tr>                     
                      <td><input type="submit" name="envoi" class="envoi" value="Envoyer le formulaire" style="margin-left: 100px;"/> 
                      </td>                      
                   </tr>       
             
             </table>
       </table>
     </form>
  </div>
  <br/>

 <p style="font-size: 12px">Les champs indiqués par un * sont obligatoires; un au-moins des champs indiqués par un ** doit être renseigné.</p>
	
     <div style="margin-top:55px">
         <span style=" font-weight:900; font-size:18px;">Nous contacter</span><br /><br />
         INTEGRATION JURIDIQUE ET ECONOMIQUE<br />
         52 boulevard BEAUMARCHAIS<br />
         75011 Paris<br />
         Téléphone 7j/7 : 01 58 30 62 05 ou 06 50 04 64 20<br />
         Email : <a href="mailto:contact@ije-asso.fr" style="text-decoration:none">contact@ije-asso.fr</a>
   </div>
      	
     </div><!--Ferme droite-->
 
</div>

Je vous remercie pour votre aide...

PS: Si on rempli pas tous les champs et qu'on clik sur le bouton envoyer, le message s'affiche pour dire de remplir des champs, le problème c'est que les champs déjà rempli le reste toujours mais le champs message s'efface! Ce qui est très embêtant pour l'internaute... Quelle est mon erreur à ce sujet?

Merci beaucoup

Bonne journée
 
WRInaute discret
Salut,

Déjà pour le champ message ton erreur vient de ton echo ici :
Code:
<td> <label for="message"> Votre message : <br/></label>
 <textarea id="message" name="message" cols="40" rows="8" <?php if (isset($_POST['envoi'])){echo $_POST['prenom'];} ?>></textarea></td>

Ca devrait être echo $_POST['message'];

Bye,
 
WRInaute discret
Pour le reste c'est normal :
avant l'envoi tu teste ton tableau $champs_vide.
Ce tableau se rempli seulement si $nom, $prenom ou $message sont vides mais pas si $email ou $tel sont vides aussi.
Si un les 3 premiers sont rempli ton message part, si les 2 autres sont vides tu affiche ton echo 'Vous devez renseigner au moins 1 champ !'
 
WRInaute discret
Merci beaucoup!

J'ai fais quelques petites modifications et maintenant ça marche sauf pour mon soucis avec le champs message:

Code:
<td> <label for="message"> Votre message : <br/></label>
<textarea id="message" name="message" cols="40" rows="8" <?php if (isset($_POST['envoi'])){echo $_POST['message'];} ?>></textarea></td>

J'ai bien mis $_POST['message']; ce coup-ci...
 
WRInaute accro
Je crois que tu as pas bien compris le fonctionnement de la textarea :

Code:
<td> <label for="message"> Votre message : <br/></label>
<textarea id="message" name="message" cols="40" rows="8"><?php if (isset($_POST['envoi'])){echo $_POST['message'];} ?></textarea></td>

Tu affichais ta valeur dans la première balise ouvrante de la textarea. Or le contenu d'une textarea se met entre les balises ouvrantes et fermantes.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut