#40156 [Opn->Bgs]: FILTER_SANITIZE_NUMBER_FLOAT incorrect when multiple dots in value
| From: | derick@php.net | Date: | Wed, 17 Jan 2007 20:25:54 +0000 |
| Subject: | #40156 [Opn->Bgs]: FILTER_SANITIZE_NUMBER_FLOAT incorrect when multiple dots in value | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-107695@lists.php.net to get a copy of this message | ||
ID: 40156
Updated by: derick@php.net
Reported By: pmjones88 at gmail dot com
-Status: Open
+Status: Bogus
Bug Type: Filter related
Operating System: Mac OS X
PHP Version: 5.2.0
New Comment:
No, that's what the logical filters are for.
Previous Comments:
------------------------------------------------------------------------
[2007-01-17 20:23:14] pmjones88 at gmail dot com
Then it should at least fail when it realizes that the value isn't
going to be useful as a float. Maybe I don't get it; a "sanitized"
float should return as a "float". Otherwise you're just stripping
non-numeric characters, which is not quote the same thing.
------------------------------------------------------------------------
[2007-01-17 20:12:06] tony2001@php.net
http://php.net/filter
FILTER_SANITIZE_NUMBER_FLOAT - Remove all characters except digits, +-
and optionally .,eE.
It's not supposed to validate the result.
------------------------------------------------------------------------
[2007-01-17 20:11:15] pajoye@php.net
Use FILTER_VALIDATE_FLOAT if you like to validate a string and get a
float value. Sanitizing filters only clean the string.
------------------------------------------------------------------------
[2007-01-17 20:01:27] pmjones88 at gmail dot com
Description:
------------
When using FILTER_SANITIZE_NUMBER_FLOAT with
FILTER_FLAG_ALLOW_FRACTION, it seems to allow any number of decimal
points, not just a single decimal point. This results in an invalid
value being reported as sanitized.
Reproduce code:
---------------
<?php
$val = 'abc ... 123.45 ,.../';
$san = filter_var($val, FILTER_SANITIZE_NUMBER_FLOAT,
FILTER_FLAG_ALLOW_FRACTION);
var_dump($san);
?>
Expected result:
----------------
float 123.45
Actual result:
--------------
string(12) "...123.45..."
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=40156&edit=1