PHP : Test presence données.

Résolu
Bonjour,

J'ai un problème.

<!DOCTYPE html>
<html> 
 <head>
  <!-- Entete de la page -->
  <meta charset "utf-8" />
  <title>Test Forms</title>
 </head>
 <body>
  <form method="post" action="formulaire.php">     
          <label for="pseudo">Votre pseudo :</label>
          <input type="text" name="pseudo" id="pseudo" />
          <input type="submit" value="Envoyer" />
  </form>
 </body>
</html>


Fichier formulaire.php

<!DOCTYPE html 
<html>
   <head>
       <title>Formulaire</title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
   </head>
    
 <body>
     <?php
   if (isset($_POST['pseudo']))
   {
    $pseudo = $_POST['pseudo'];
    echo $pseudo;
     $lvlen = strlen($pseudo);
    echo $lvlen;
   }
   else
   {
    $pseudo = 'vide';
    echo $pseudo;
    echo $lvlen;
   }
   
   if($lvlen == 0)
   {
    echo 'longueur = 0';
   }
  ?>
 </body>
</html>

Mon problème : php ne détecte jamais que le champ pseudo est vide, par contre, $lvlen est égal à 0.
Quelle est l'erreur dans le isset ?

Merci pour vos réponses

EDIT : Déplacement du sujet dans le forum PHP
EDIT² : Ajout du LANGAGE dans les balises de code pour avoir la coloration syntaxique.

3 réponses

  1. Merci beaucoup pour ton aide Jordane.
    Effectivement, cela fonctionne.
    Bonne journée.
    1. Modérateur
      Bonjour,

      isset sert à vérifier que la variable existe.
      Pour savoir si elle est vide .. c'est empty qu'il faut utiliser

      Essaye ça :
      <?php
      //récupération PROPRE des variables AVANT de les utiliser
      $pseudo = !empty($_POST['pseudo']) ? trim($_POST['pseudo']) : NULL;
      $lvlen = $pseudo ? strlen($pseudo) : 0;
      ?>
      <!DOCTYPE html>
      <html>
         <head>
             <title>Formulaire</title>
             <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
         </head>
          
       <body>
           <?php
         if ($pseudo){
          echo $pseudo;
          echo $lvlen;
         } else {
           echo 'vide';   
         }
         
         if($lvlen == 0){
          echo 'longueur = 0';
         }
        ?>
       </body>
      </html>
      


      Je t'invite fortement à lire ceci :
      https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

      et concernant l'écriture des IF /ELSE .. je t'invite à consulter la norme PSR-2
      https://www.php-fig.org/psr/psr-2/