Hi, <?php function check_input($user_input, $min=0, $max=0, $text=false, $number=false, $special=false, $default="") { $pattern=""; if ($text) $pattern.='a-zA-Z'; if ($number) $pattern.='0-9'; if ($special) $pattern.='[:space:]\~\`\@\#\$\%\^\&\*\(\)\_\+\-\=\\\{\}\|\:\"\;\'\<\>\?\,\. \/';
$regexp='^['.$pattern.']{'.$min.','.$max.'}$'; if (ereg($regexp,$user_input)) return $user_input; else return $default; } ?> That should take care of everything except the square brackets - not sure how to go about getting them (escaping them didn't seem to work). HTH Danny. ----- Original Message ----- From: "SP" <[EMAIL PROTECTED]> To: "Php" <[EMAIL PROTECTED]> Sent: Friday, April 19, 2002 1:57 PM Subject: [PHP] Validating User Input > I am trying to validate an user's input. I can get the ereg function to > work if I just type in the pattern I'm searching for but my problem is I > want to build the pattern through a variable first and then use that > variable in the ereg function. > > For example, I want to check an input that's only text and only between 5 to > 20 characters in length. Is this possible? > > function check_input($user_input, $min=0, $max=0, $text=false, > $number=false, $special=false, $default="") > { > if ($text) $pattern .= "a-zA-Z"; > if ($number) $pattern .= "0-9"; > if ($special) $pattern .= "[:space:]"; > > if (ereg("^[$pattern]{$min,$max}$", $user_input)) > return $user_input; > else > return $default; > } > > Also, which of the following special characters is considered safe to > accept? I am just allowing spaces now but would like as many of the below > characters to be included. > > ~ ` ! @ # $ % ^ & * ( ) _ + - = [ ] \ { } | : " ; ' < > ? , . / > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php