Probleme de test sur champs vide

Tatoubest Messages postés 28 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 17 août 2007 - 17 août 2007 à 18:59
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 - 17 août 2007 à 20:13
Bonsoir,





J’ai un petit soucis qui peux s’averer tres simple
mais qui m’embete depuis quelques temps.





Je souhaite effectuer un test sur les champs $civ,
$nom, $email, $type, $noment, $adressent, et 
$_POST['choix']. Si c’est le cas alors le script s’execute.





Cependant, il ne rentre meme pas dans ma premiere
condition…





Voici mon code :











// recuperation des variables








          $civ=$_POST['civ'];








          $nom=$_POST['nom'];








          $fonction=$_POST['fonction'];








          $email=$_POST['email'];








          $tel=$_POST['tel'];








          $poste=$_POST['poste'];








          $type=$_POST['type'];








          $noment=$_POST['noment'];








          $adressent=$_POST['adressent'];








          $_POST['choix'];








          $message=$_POST['message'];








         










          $contenu
= "";

















// On vérifie si les champs sont suivant sont pas
remplies








          if(empty($civ)
OR empty($nom) OR empty($email) OR empty($type) OR empty($noment) OR
empty($adressent) OR empty($_POST['choix']))








          {








                   $contenu.="<script
language='Javascript'>








                            alert('Field(s)
can be empty, thank you to try again');








                            history.go(-1)








                            window.location.replace('Contact.php');








                            </script>";








          //Test
si email correct                  








          }else








          {








                   if(!verif_email($email))








                   {








                            $email="";








                            $contenu.="<script
language='Javascript'>








                                      alert('You
email is not right, thank you to try again');








                                      window.location.replace('contact.php');








                                      </script>";








                   }








          }








 






Voici les erreurs afficher lorsque je saisie aucun
champ:






 







Notice: Undefined index: civ in
/Applications/MAMP/htdocs/Contact/contact2.php on line 16








 








Notice: Undefined index: type
in /Applications/MAMP/htdocs /contact2.php on line 22








 








Notice: Undefined index: choix
in /Applications/MAMP/htdocs/ Contact/contact2.php on line 25








 








Warning: Invalid argument
supplied for foreach() in /Applications/MAMP/htdocs/Contact/contact2.php on
line 56








 








Warning: Invalid argument supplied for foreach() in
/Applications/MAMP/htdocs/ Contact/contact2.php on line 72








 






Les 3 premieres erreurs correspondent au debut du code, à la recupération des variables.



Si je saisie les valeurs, je n’ai aucune
erreurs qui s’affichent.





Merci d’avance de votre aide !





Cordialement,






 






Tatoubest.

10 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
17 août 2007 à 19:05
Bonjour,

c'est parce que $_POST['civ'] n'existe pas que Notice: Undefined index: civ in /Applications/MAMP/htdocs/Contact/contact2.php on line 16 s'affiche. Regarde si ton champ html de départ s'appelle bien comme ça, et qu'il est bien inclus dans le form.

Ah et si c'est une case à cochée non cochée, c'est normal que la valeur n'existe pas à l'arrivée.

à+
0
Tatoubest Messages postés 28 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 17 août 2007
17 août 2007 à 19:11
Bonsoir Evangun,
effectivement $civ est un bouton radio, dans mon formulaire,
ce la ressemble a ca :

                        <td>Mme</td>
                        <td>Melle</td>
                        <td>M</td>
                        <td></td>

que faire pour tester ce genre de chose dans de cas?
Sinon, je recupere bien la valeur de la variable...
Sinon les autres elements sont des textfields et check box...
Merci d'avance,

Tatoubest.
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
17 août 2007 à 19:18
Si un l'un des boutons radios est coché, tu devrais bien récupérer la valeur "value" dans $_POST['civ'] .

Si pourtant tu as coché un bouton, vérifie que les champs sont bien à l'intérieur de <form> ça doit être ça.
0
Tatoubest Messages postés 28 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 17 août 2007
17 août 2007 à 19:23
Effectivement, si je selection une check box, un textfield ou un bouton radio, j'arrive sans probleme à recuperer les valeurs, mais mon objectifs est de tester si l utilisateur oublie de les cocher(radio), selectionner(checkbox), ou remplir(textfield), alors il sera automatiquement renvoyaer à la page precedente...
Est ce possible?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
17 août 2007 à 19:28
if(isset($_POST['civ'])){
    $civ = $_POST['civ']
}
else {
    $civ = 'inconnue';
}
0
Tatoubest Messages postés 28 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 17 août 2007
17 août 2007 à 19:44
Desoler Evangun, je n'y arrive pas...
Est possible de resonner comme ca ?

  if(isset($civ) OR empty($nom) OR empty($email) OR isset($type) OR empty($noment) OR empty($adressent) OR isset($_POST['choix']))
{
    $civ = $_POST['civ'];
    $type = $_POST['type'];
    $choix = $_POST['choix'];
   
$contenu.="<script language='Javascript'>

                            alert('Field(s) can be empty, thank you to try again');

                            history.go(-1)

                            window.location.replace('Contact.php');

                            </script>";

          //Test si email correct                  

          }else

          {

                   if(!verif_email($email))

                      .....

mes variables $type et $choix sont des radio et checkboxs. Fautil faire un test separer entre eux et les textfields?
Je suis paumé....
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
17 août 2007 à 19:55
Non tu ne peux pas raisonner comme ça.

Il faut écrire :

//ici tes variables obligatoire
if(empty($nom) OR empty($email) OR empty($noment) OR empty($adressent)) {
    redirection
}
//là si tes variables obligatoires sont remplies
else {
    //puis les vérifs sur les variables non-obligatoires
   

if(isset($_POST['civ'])){
        $civ = $_POST['civ']
    }

    if(isset($_POST['type'])){
        $civ = $_POST['type']
    }
}
à+
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
17 août 2007 à 19:56
oups

//ici tes variables obligatoire
if(empty($nom) OR empty($email) OR empty($noment) OR empty($adressent)) {
    redirection
}
//là si tes variables obligatoires sont remplies
else {
    //puis les vérifs sur les variables non-obligatoires
    if(isset($_POST['civ'])){
        $civ = $_POST['civ']
    }
    else {
        $civ = 'inconnue';
    }

    if(isset($_POST['type'])){
        $type = $_POST['type']
    }
    else {

        $type = 'inconnue';

    }

    ..... suite de ton script
}
0
Tatoubest Messages postés 28 Date d'inscription vendredi 23 décembre 2005 Statut Membre Dernière intervention 17 août 2007
17 août 2007 à 20:03
Je vais tester ca et te dit ca apres mais je ne sais pas si ca fonctionnera car dans la partie :

//puis les vérifs sur les variables non-obligatoires
    if(isset($_POST['civ'])){
        $civ = $_POST['civ']
    }
    else {
        $civ = 'inconnue';
    }

    if(isset($_POST['type'])){
        $type = $_POST['type']
    }
    else {
        $type = 'inconnue';
    }

    ..... suite de ton script
}
C'est variable le sont aussi... C'est juste que ce ne sont pas des textfields, mais un rdio et 2 checkboxs. Je vais essayer et te tiens au courant.
merci de ton aide en tout cas !
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
17 août 2007 à 20:13
Attends, tu me dis une fois que tu veux prévoir le cas où les gens ne cochent pas, et ensuite tu dis que ce sont des champs obligatoires ? ça n'a pas sens...
0
Rejoignez-nous