hallaplay835 Posted July 9, 2012 Share Posted July 9, 2012 Larry, in your 4th edition of PHP and MySQL for Dynamic Web Sites, you use several times the FILTER_VALIDATE_INT filter with the filter_var() function in order to validate form input as positive integers (that is, natural numbers excluding zero, depending on whether you count zero as a natural number). To accomplish this you write in your book: filter_var($var, FILTER_VALIDATE_INT, array('min_range' => 1)) However, according to the PHP function reference, the third argument passed to the filter_var() function needs to be an associative array named $options. Inside this array you should then create another array and define the options there. So you would write: filter_var($var, FILTER_VALIDATE_INT, array('options' => array('min_range' => 1))) You can also establish the 'max_range' option for this type of filter. A complete list of available filters to be used with filter_var() can be found here. Options to be established for validate filters can be found here. I have tested this in PHP 5.3.8 (can someone test using other PHP versions?) and when using the approach specified in the book, PHP ignores the third argument (it does not complain strangely enough) and will accept negative numbers (not zero however). Link to comment Share on other sites More sharing options...
Larry Posted July 10, 2012 Share Posted July 10, 2012 Thanks for your post. Let me check into this and get back to you. Link to comment Share on other sites More sharing options...
hallaplay835 Posted July 31, 2012 Author Share Posted July 31, 2012 So have you looked into this? I think some mention should be made about it. Maybe in the errata page. Link to comment Share on other sites More sharing options...
Larry Posted August 1, 2012 Share Posted August 1, 2012 Sorry for the delay. I meant to get to this before my vacation (on it now), but didn't. My immediate answer is that I've been using filter_var() for years now and never once had to create a subarray indexed at "options". I want to confirm that it's not behaving properly before giving an official answer. But this has not been a problem or requirement for me in the past. Link to comment Share on other sites More sharing options...
Larry Posted August 14, 2012 Share Posted August 14, 2012 Again, sorry for the delay. Back from vacation and I just tested this. I see what you're saying in the PHP manual but it works either way: $var = 0; if (filter_var($var, FILTER_VALIDATE_INT, array('min_range' => 1))) { echo 'passed'; } else { echo 'did not pass'; } or $var = 0; if (filter_var($var, FILTER_VALIDATE_INT, array('options' => array('min_range' => 1)))) { echo 'passed'; } else { echo 'did not pass'; } Link to comment Share on other sites More sharing options...
Recommended Posts