Problèmes avec is_float dans mon formulaire

Problèmes avec is_float dans mon formulaire - PHP - Programmation

Marsh Posté le 28-10-2004 à 09:35:34    

Voila j'ai un champ texte dans un un furmulaire quand je clique sur un bouton je veux vérifier si l'utilisateur a saisi un nombre décimal ou non.
 
voici le code :
 

Code :
  1. <form method="post">
  2. <input type="text" name="test">
  3. <input type="hidden" name="isClick" value="yes">
  4. </form>
  5. <?
  6. error_reporting(E_ALL ^ E_NOTICE);
  7. if ($_POST[isClick] == 'yes')
  8. {
  9. if(is_float($_POST[test]))
  10. {
  11.  echo "float<br>";
  12. }
  13. else
  14. {
  15.  echo "pas float<br>";
  16. }
  17. }
  18. ?>


 
le Problème c'est que sa me revois toujours "pas float" meme quand je rentre un nombre décimal. Ce qui est bizzare c'est que sa marche très bien si je remplace is_float par is_numeric.
 
quelqu'un aurait la solution?

Reply

Marsh Posté le 28-10-2004 à 09:35:34   

Reply

Marsh Posté le 28-10-2004 à 09:38:05    

RTFM
 

Citation :

Note:  To test if a variable is a number or a numeric string (such as form input, which is always a string), you must use is_numeric().

Reply

Marsh Posté le 28-10-2004 à 09:41:56    

oui mais is_numeric me permet pas de savoir si ma variable est décimale ou non. Comment faire dans ce cas?

Reply

Marsh Posté le 28-10-2004 à 09:42:35    

ben tu regarde si tu à un . ou , dans ta chaine de caractere

Reply

Marsh Posté le 28-10-2004 à 09:45:22    

ok je vais essayer sa merci :)

Reply

Marsh Posté le 28-10-2004 à 10:59:18    

Tout ce qui vient d'un formulaire est de type string.
Donc is_float te renverra toujours false.


---------------
Mon blog
Reply

Marsh Posté le 28-10-2004 à 11:15:23    

function isFloat($var) {
   if (is_float($var) || is_int($var)) return true;
   if (is_string($var) and $var === (string)(float) $var) return true;
   return false;
}


---------------
Mon blog
Reply

Marsh Posté le 28-10-2004 à 12:07:57    

Merci mais c'est bon j'ai fais une boucle qui cherchais si il y avait un . ou une , dans ma variable et ca marche :)

Reply

Marsh Posté le 28-10-2004 à 14:37:31    

ratibus a écrit :

Tout ce qui vient d'un formulaire est de type string.
Donc is_float te renverra toujours false.


 
oui c'est ce que dis la citation du manuel de chacal_one333 (ok c'est en anglais mais quand meme)... d'ou le RTFM


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
Reply

Marsh Posté le 28-10-2004 à 15:05:22    

spaceuniverse a écrit :

Merci mais c'est bon j'ai fais une boucle qui cherchais si il y avait un . ou une , dans ma variable et ca marche :)


pourquoi une boucle ?

Code :
  1. ereg('[,\.]',$_POST['test']) ? echo 'float' : echo 'pas float';


Message édité par Martius le 28-10-2004 à 15:07:23

---------------
Martin
Reply

Marsh Posté le 28-10-2004 à 15:05:22   

Reply

Marsh Posté le 28-10-2004 à 17:22:52    

Effectivement c'est bien plus court comme sa merci pour l'info.

Reply

Marsh Posté le 28-10-2004 à 18:59:12    

MarTiuS a écrit :

pourquoi une boucle ?

Code :
  1. ereg('[,\.]',$_POST['test']) ? echo 'float' : echo 'pas float';




 
Une regex pour vérifier si un nombre est décimal...mon dieu...
 
tu fais

Code :
  1. if (is_float($_POST['test']*1)){...}


 
et ça roule. Le jour où j'écris 'Bonjour, je suis un nombre.' dans mon form, tu me réponds que c'est un float toi ?

Reply

Marsh Posté le 28-10-2004 à 19:25:02    

spaceuniverse a écrit :

Merci mais c'est bon j'ai fais une boucle qui cherchais si il y avait un . ou une , dans ma variable et ca marche :)


C'est a ça que j'ai répondu... mais c'est vrai que j'y avaits pas trop pensé... :jap:


Message édité par Martius le 28-10-2004 à 20:11:17

---------------
Martin
Reply

Sujets relatifs:

Leave a Replay

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