Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
802 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [résolu]Problème de vérification d'un entier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[résolu]Problème de vérification d'un entier

n°1893447
Yagmoth
Fanboy
Posté le 10-06-2009 à 09:37:43  profilanswer
 

Hello  :hello:  
 
Petit souci un peu mystérieux, j'ai le code suivant, avec une fonction destinée à vérifier si le nombre est un entier :
 

Code :
  1. function is_entier($var)
  2. {
  3. if (!filter_var($var, FILTER_VALIDATE_INT))
  4.               {
  5.               return FALSE;
  6.               }
  7.         else
  8.               {
  9.               return TRUE;
  10.               }
  11. }
  12. echo ($_POST['numero']);
  13. if (!is_entier($_POST['numero']))
  14.        {
  15.        echo "Ceci n'est pas un nombre entier";
  16.        }


 
L'echo m'affiche un "0808080808" par exemple, mais la fonction me retourne false. J'ai du mal à le comprendre vu que plus haut dans le code, elle parvient à valider des superficies, des prix, etc., sans problème. Par contre quand j'effectue un :
 

Code :
  1. $numero=0808080808;
  2. $numero=intval($numero);
  3. if (!is_entier($numero))
  4.        {
  5.        echo "Ceci n'est pas un nombre entier";
  6.        }


 
Ca fonctionne (à noter, sans le typage forcé, ça ne fonctionne de nouveau plus... alors que ça m'a validé auparavant des données issues d'un extract($_POST)).
 
Edit : je crois que je vais craquer :D Si je fais ça :
 

Code :
  1. $numero=9999999999;
  2. $superficie=99999999;
  3. if (!is_entier($superficie))
  4.        {
  5.        echo "La superficie n'est pas un nombre entier";
  6.        }
  7. if (!is_entier($numero))
  8.        {
  9.        echo "Le numéro n'est pas un nombre entier";
  10.        }


 
J'obtiens le message d'erreur dans le second cas, mais pas dans le premier.
Edit : j'ai trouvé, la variable est considérée comme un float à partir de 2^31.


Message édité par Yagmoth le 10-06-2009 à 10:22:17

---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui !
mood
Publicité
Posté le 10-06-2009 à 09:37:43  profilanswer
 

n°1894629
Profil sup​primé
Posté le 12-06-2009 à 19:11:46  answer
 

pour ta fonction is_entier, il n'est pas nécessaire d'utilise une condition !

Code :
  1. function is_entier($var) // à noter que mélanger l'anglais/français c'est moyen :/
  2. {
  3.   return filter_var($var, FILTER_VALIDATE_INT);
  4. }


mais si tu n'utilises pas la chaîne retournée tu as ctype_digit :

Code :
  1. if(!ctype_digit($superficie)) {
  2.    echo 'La superficie doit être un nombre entier';
  3. }


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [résolu]Problème de vérification d'un entier

 

Sujets relatifs
[RESOLU]Fermer une JFrame depuis un Bouton dans un Panel[NON RESOLU] Firefox et scrollTo : un drôle de comportement
[Web] Problème d'affichage de contenuprobleme validation de formulaire javascript
[Débutant][OpenGL ES] Problème affichage textures[Resolu]Serveur Multi Thread en C
Problème fonction mailExcel 2003, problème avec une boucle
probleme livre d'or[Résolu] Utilisation d'une application winform en réseau
Plus de sujets relatifs à : [résolu]Problème de vérification d'un entier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR