On Wednesday 06 August 2003 01:06, anders thoresson wrote: > I'm having problem with a function that I'll use to validate user input > before passing it to MySQL. For strings, I want to make sure that they > aren't to long, so I have written this function:
What is this mess that you have here :-) > function secure_string($unsafe_string, $max_length = -1, $errormessage = > "Too many characters." ) { // verify that string isn't longer then > $max_length, if $max_length is set if ($max_length > -1) { if > (!is_int($max_length)) { error("Variable max_length is not an integer." ); > } if (strlen($unsafe_string) > $max_length) { error($errormessage); } } > [... and the validation will continue here.] > When I want to use the max length check I pass a value to the function > like this: > $a_header = secure_string($_POST['a_header'], 60, "Header must not be more > then 60 characters." ); > But I having to problems: > 1) If no max length is passed, and $max_length gets the value -1, the if- > loop if ($max_length > -1) is still run. How exactly are you calling the function when "no $max_length is passed"? If you're doing something like: secure_string($string, '', 'error msg'); Then inside your function $max_length will be equivalent to 0 (zero) and hence your comparison: if ($max_length > -1) will be true. -- Jason Wong -> Gremlins Associates -> www.gremlins.biz Open Source Software Systems Integrators * Web Design & Hosting * Internet & Intranet Applications Development * ------------------------------------------ Search the list archives before you post http://marc.theaimsgroup.com/?l=php-general ------------------------------------------ /* When one burns one's bridges, what a very nice fire it makes. -- Dylan Thomas */ -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php