zéro et empty... même réponse....

zéro et empty... même réponse.... - PHP - Programmation

Marsh Posté le 24-11-2003 à 17:48:02    

voici mon code :
 

Citation :

if (empty($x))
 {
 $field="Le champ est vide !";
 }
 if (!empty($x) && !eregi("^[0-9]+$", $x))
 {  
    $field="Doit être un chiffre !";  
 }
 if (!empty($x) && eregi("^[0-9-]+$",$x) && $x <= 0)
 {
 $field="Doit être supérieur à 1 !";
 }
 


 
voici le lien :
 
http://www.clonecopy.net/php/devis/index_etape1.php
 
donc mon petit bug est tout simple...
Quand je tape "0", il me reponds "le champ est vide!"... j'en deduit que "0" et "empty"... c'est pareil... comment eviter cela ?
 
 
 
Merci


Message édité par freed102 le 24-11-2003 à 17:49:07

---------------
Freed102
Reply

Marsh Posté le 24-11-2003 à 17:48:02   

Reply

Marsh Posté le 24-11-2003 à 18:55:56    

utilises intval($tavariable) pour que ca retourne la partie numerique
 

Reply

Marsh Posté le 24-11-2003 à 19:00:18    

sinon un chiffre [0-9]
un nombre chiffre+

Reply

Marsh Posté le 24-11-2003 à 19:03:41    

isset au lieu de empty et mets des else dans ton code!!!


Message édité par gizmo le 24-11-2003 à 19:04:11
Reply

Marsh Posté le 25-11-2003 à 02:14:56    

oui tu peux faire ca:
 

Code :
  1. if(isset($x))
  2. {
  3.    if(eregi("^[0-9]+$", $x))
  4.    {
  5.       if($x <= 0)
  6.       {
  7.          $field="champ doit etre superieur à 1";
  8.       }
  9.       else
  10.       {
  11.          //effectuer l'action;
  12.       }
  13.    }
  14.    else
  15.    {
  16.       $field="champ doit etre un chiffre!";
  17.    }
  18. }
  19. else
  20. {
  21.    $field="champ vide";
  22. }


Message édité par aspegic500mg le 25-11-2003 à 02:15:05
Reply

Marsh Posté le 25-11-2003 à 10:41:01    

merci pour tout !
 
simplement dans mon histoire... le code ne s'arrete pas là ! je dois faire d'autres tests avant de valider... si j'imbrique trop mes tests... ça risque de devenir compliqué non ?
 
voici le code total :
 

Citation :


 if (empty($x))
 {
 $field="Le champ est vide !";
 }
 if (!empty($x) && !eregi("^[0-9]+$", $x))
 {  
    $field="Doit être un chiffre !";  
 }
 if (!empty($x) && eregi("^[0-9-]+$",$x) && $x <= 0)
 {
 $field="Doit être supérieur à 1 !";
 }
 if ($x != ($y+$z))
 {
 $field2="Attention la somme des pages noir et blanc et couleur doit être égale au nombre total de pages !";
 }
 if (!empty($y) && !eregi("^[0-9]+$", $y))
  {  
        $field2="Doit être un chiffre !";  
  }
  if (!empty($z) && !eregi("^[0-9]+$", $z))
  {  
        $field2="Doit être un chiffre !";  
  }
 if (empty ($y) && empty ($z))
 {
 $field2="Vous devez choisir au minimum une page noir et blanc ou couleur !";
 }
 elseif ($x >=1 && $x ==($y+$z))
 {
 header("Location: index_etape2.php?".session_name()."=".session_id());
 }
 
}


---------------
Freed102
Reply

Marsh Posté le 25-11-2003 à 11:11:14    

Ben c'est comme tu veux mais là tu refais le test empty à chaque fois, ca peut devenir chiant :o

Reply

Marsh Posté le 27-09-2005 à 10:33:46    

Moi pour faire la diff entre un vide et un zéro je fais strlen
 
$foo[]=0;
$foo[]='';
echo strlen($foo[0]); // Affiche 1
echo strlen($foo[1]); // Affiche 0
 
 
edit: ho pt1 j'avais pas vu la date :D
Tant pis ca en aidera p e.  [:gat$]


Message édité par Gat$ le 27-09-2005 à 10:34:25

---------------
Recherche de partenaires pvp dans World of Warcraft :: http://www.wowteamfinder.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed