Sos verification champ vide avec php

bonjour a tous

j aimerais avoir une explication

avec ce code
si un de n importe quel champ est rempli on peux passer a l étape suivante
Code :

1. if(isset($_POST['nom']) && isset($_POST['adresse']) && empty($_POST['nom']) && empty($_POST['adresse'])){
2. echo '<h1 align="center">Des champs sont vides ! Vérifier nom,adresse ?<br />';
3. echo '<a href="javascript:history.back();">RETOUR AU FORMULAIRE</a></h1>';exit;
4. }

comment faire pour qu il puisse regarder chaque champ

quelle différence entre isset et empty

un énorme merci pour votre aide

11 réponses

  1. if isset verifie que l'existence d'une variable
    if empty regarde si la variable est vide (NULL, 0, chaine de zero caracteres)

    ensuite,
    pour connaitre l'etat de chaque champs,
    il faut les tester un par un
    0
    1. ok un grand merci pour l infos
      0
      1. Modérateur
        Tu peux essayer un code du genre
        <?php   
        $myfields = array("f1","f2", "f3");   
        function testGet($testfields) {   
                $badfields = array();   
                foreach ( $testfields as $field) {   
                        if( !isset($_GET[$field]) || empty($_GET[$field]) ) {   
                                $badfields[] = $field ;   
        # autres vérifications                           
                        }   
                }   
                return $badfields;   
        }   
        
        $missing = testGet($myfields);   
        if ( 0 == count($missing)) {   
                print("OK");   
        }   
        else {  
                print('<pre>'); 
                print_r($missing); 
                print('</pre>');   
        }   
        ?> 

        A améliorer, à adapter.

        Johan
        Gates gave ^H sold you the windows.
        GNU gave us the whole house.(Alexandrin)
        0
        1. merci a vous tous pour toute cette aide
          0
          1. Et pour faire simple avec ce que tu as donné:

            if( (isset($_POST['nom']) && empty($_POST['nom'])) || (isset($_POST['adresse']) && empty($_POST['adresse']))){

            Suffit de dupliquer si tu as d'autres champs.
            0
            1. Modérateur
              Simple , mais pas souple du tout.
              0
            2. Qui t'as dit que c'était pour faire le grand écart ?! ^^
              0
          2. merci et remerci et tout ceux qui m aide c est vraiment super sympa
            0
            1. bonjour a tous

              ceci serait il valable

              if(
              (isset($_POST['nom']) && empty($_POST['nom'])) ||
              (isset($_POST['prenom']) && empty($_POST['prenom']))) ||
              (isset($_POST['mail']) && empty($_POST['mail'])))||
              (isset($_POST['adresse']) && empty($_POST['adresse'])))||
              (isset($_POST['code-postal']) && empty($_POST['code_postal'])))||
              (isset($_POST['telephone']) && empty($_POST['telephone'])))||
              (isset($_POST['ville']) && empty($_POST['ville'])))||
              (isset($_POST['pays']) && empty($_POST['pays'])))||
              { echo '<h1 align="center">Des champs sont vides ! Vérifier nom,adresse ?<br
              />';
              echo '<a href="javascript:history.back();">RETOUR AU

              FORMULAIRE</a></h1>';exit;
              }
              0
              1. personnellement,
                je prefere verifier qu'un champ n'est PAS vide

                cela ne fait qu'une condition

                if(!empty($_POST['nom'])) { echo 'ok'; } else { echo 'le champ est incorrect'; }
                0
                1. merci pour la réponse
                  mais le soucis c est que les champs certains champs peuve rester vide
                  0
                  1. ben tu ne test que ceux qui ne doivent pas etre vides
                    ...
                    0
                    1. merci pour la réponse

                      j explique un peu mon soucis j ai donc 8 champs qui ne peuvent pas être vide c est d ailleurs ce que j essaye de faire la formule décrite ici plus haut
                      0