Test d'un champ dans un formulaire

Signaler
Messages postés
9
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
5 mars 2012
-
Messages postés
9
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
5 mars 2012
-
Youss

Voila ma question elle ne devrait pas être trop compliqué j'ai un formulaire en php et dans celui-ci le champ "raison" qui est un champ à choix multiple ... mon problème est que je n'arrive pas à tester si l'utilisateur fais un choix j'y arrive avec les autres champ mais pas avec celui-là ...ce que j'aimerais c'est que si le user ne fait pas son choix une erreur lui revienne du style "fait votre choix" ...

Mon code

<?php
require_once("./forms_fonct_inc/validation.form.inc.php");
    if (isset($_POST['submitted'])){

    $prenom = $_POST['prenom'];
    $patronyme = $_POST['patronyme'];
    $email = $_POST['email'];
    $raison = $_POST['raison'];
    $msg = $_POST['message'];
   
    $error_msg=array(); //tableau des messages d'erreurs
    //Si des champs sont vides
    //Remplissage du tableau des messages d'erreur
    if($prenom==""){
    $error_msg[]="Entrez votre pr&eacute;nom";
    }
    if($patronyme==""){
    $error_msg[]="Entrez votre nom de famille";
    }
    if(! strrpos($email, "@")){
    $error_msg[]="Entrez une adresse email valide";
    }
    if($msg==""){
    $error_msg[]="Votre message SVP";
    }
   
    $valid=verifyAlphaNum($prenom);
    if(!$valid){
    $error_msg[]="Le pr&eacute;nom ne peut contenir que des lettres, nombres, espaces, tiret et '";
    }
   
    $valid=verifyAlphaNum ($patronyme);
    if(!$valid){
    $error_msg[]="Le nom ne peut contenir que des lettres, nombres, espaces, tiret et '";
    }
   
    $valid=verifyAlphaNum ($raison);
    if($valid!="choix1" || $valid!="choix2" || $valid!="choix3" || $valid!="choix4" || $valid!="choix5" ){
    $error_msg[]="La raison de votre greve doit être connue '";
    }
   
    $valid=verifyEmail ($email);
    if(!$valid){
    $error_msg[]="L'email doit &ecirc;tre valide (ex: bart@simpsons.com).";
    }
   
    $valid=verifyText ($msg);
    if(!$valid){
    $error_msg[]="Le message ne peut contenir que des lettres, des nombres, de la ponctuation et " ' - ? ! ";
    }
   
    if (get_magic_quotes_gpc() ){
        $prenom=stripslashes($prenom);
        $patronyme=stripslashes($patronyme);
        $email=stripslashes($email);
        $msg=stripslashes($msg);
    }
       
//à utiliser dans la fonction mail() de PHP
    $destination_email="snoop@bounce2dis.com";
    $email_subject="Commentaires et questions";
    $headers='From: somebody@exemple.com' . "\r\n";
   
//faire une chaîne contenant les variables à tester
    $email_body="$prenom\n$patronyme\n$msg\n$email";
   
    if (!$error_msg){
    // mail ($destination_email, $email_subject, $email_body; $headers);
    header ('Location: mail_confirm_09.php');
    exit();
    }
   
//à décommenter pour tester sur serveur
// $envoi_ok=mail($destination_email, $email_subject, $email_body, $headers);
// if ($envoi_ok) {echo "Email envoy&eacute;";}
//    echo "Message envoy&eacute;" ."
". $email_body; //à supprimer si testé sur serveur
}// fin de if post submitted
    ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
<title>Formulaire de contact</title>
<link href="../css/form_contact_1.css" rel="stylesheet" type="text/css" media="screen"/>
<link href="../css/globale.css" rel="stylesheet" type="text/css" media="screen"/>
</head>

Contact

Envoyez-nous vos commentaires et questions

<?php
//Affichage des messages d'erreur
if($error_msg){
echo "\n";
foreach($error_msg as $erreur){
echo "<li>".$erreur."</li>\n";
}
echo "";
} // fin affichage des messages d'erreur
?>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
<fieldset>
<legend>Formulaire de contact</legend>
Les champs * sont obligatoires

<label for="prenom">Pr&eacute;nom*</label>

"/>

<label for="patronyme">Patronyme*</label>

"/>

<label for="email">Email*</label>

"/>

<tr align="center">
      <td>raison</td>
      <td>    <select name="raison">
            <option value="choix" selected>Choisissez</option>
            <option value="choix1" name="raison" id="raison">choix 1</option>
            <option value="choix2" name="raison" id="raison" >choix 2</option>
            <option value="choix3" name="raison" id="raison">choix 3</option>
            <option value="choix4" name="raison" id="raison">choix 4</option>
            <option value="choix5" name="raison" id="raison">choix 5: </option>
            </select>
    </tr>

<label for="message">Entrez vos commentaires et questions</label>

<textarea name="message" rows="3" cols="20" id="message" value="<?php echo $msg ?>"></textarea>

Ces informations resteront confidentielles

</fieldset>
</form>

</html>

Merci d'avance

2 réponses

Messages postés
48
Date d'inscription
jeudi 8 septembre 2005
Statut
Membre
Dernière intervention
16 août 2010

salut,

essai comme cela

-----------------------------------------------------------------------------
Dans ton formulaire :

<select name="raison">
            <option value="choix" selected>Choisissez</option>
            <option value="choix1">choix 1</option>
            <option value="choix2">choix 2</option>
            <option value="choix3">choix 3</option>
            <option value="choix4">choix 4</option>
            <option value="choix5">choix 5: </option>
 </select>

-----------------------------------------------------------------------------
Dans ta validation :

$raison = $_POST['raison'];

 if($raison=="choix"){
    $error_msg[]="Veuillez sélectionner une raison";
}

-----------------------------------------------------------------------------

@+
Messages postés
9
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
5 mars 2012

Youss

Merci pour ton aide [../auteur/WOLFCYBER95/575987.aspx wolfcyber95]  ...  ça fonctionne

a+