PHP : Test presence données.

Résolu/Fermé
rmerme Messages postés 36 Date d'inscription samedi 3 mars 2018 Statut Membre Dernière intervention 18 mars 2019 - Modifié le 8 avril 2018 à 22:06
rmerme Messages postés 36 Date d'inscription samedi 3 mars 2018 Statut Membre Dernière intervention 18 mars 2019 - 9 avril 2018 à 09:36
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.
A voir également:

3 réponses

jordane45 Messages postés 38137 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
8 avril 2018 à 22:11
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/

0
yg_be Messages postés 22696 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 17 avril 2024 1 471
8 avril 2018 à 22:14
bonsoir, as tu essayé
!empty
au lieu de
isset
?
0
rmerme Messages postés 36 Date d'inscription samedi 3 mars 2018 Statut Membre Dernière intervention 18 mars 2019
9 avril 2018 à 09:36
Merci beaucoup pour ton aide Jordane.
Effectivement, cela fonctionne.
Bonne journée.
0