//USAGE: $results .=(Continuous for multiple fields) formcheck($postdata,"Field",length(number),"A or AN, ALL, EMAIL, WEBSITE, etc.","REQUIRE, NA"); //EXAMPLE: $results .= formcheck($postdata,"Name",30,"AN","REQUIRE"); Then check $results for errors. If == "" then process form. function formcheck($data,$field,$length,$type,$require) { if ($data == "" && $require == "REQUIRE") { $error .= "
  • " . $field . " Cannot be left blank
  • "; return $error; } elseif ($data == "" && $require =="NA") { return; } if (strlen($data) > $length) $error .= "
  • " . $field . " is too long. Please use " . $length . " characters or less.
  • "; switch($type) { case "AN": if (!preg_match("/^[a-z0-9 ]+$/i", $data)) $error .= "
  • " . $field . " can only contain letters and numbers and spaces
  • "; break; case "A": if (!preg_match("/^[a-z]+$/i", $data)) $error .= "
  • " . $field . " can only contain letters and spaces
  • "; break; case "N": if (!preg_match("/^[0-9]+$/", $data)) $error .= "
  • " . $field . " can only contain numbers
  • "; break; case "ALL": if(!preg_match("/^[a-z0-9\:\-\_\?\&\;\#\.\"\/\,\'\\\ ]+$/i", $data)) $error .= "
  • " . $field . " contains invalid characters
  • "; break; //htmlspecialchars($data); better to do this for general data case "DATE": if(preg_match("/^[0-9]{2}-[0-9]{2}-[0-9]{4}$/", $data) === 0) $error .= "
  • " . $field . " must be in the format MM-DD-YYYY
  • "; break; case "PASS": if(!preg_match("/^.*(?=.{6,})(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z]).*$/", $data)) $error .= "
  • " . $field . " must be at least 6 characters with at least one lower case letter, one upper case letter & one digit.
  • "; case "WEBSITE": if (!preg_match("/^[a-z0-9\.\/\-:]+$/i", $data)) $error .= "
  • " . $field . " entered is invalid.
  • "; break; case "EMAIL": if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $data)) $error .= "
  • The " . $field . " address entered is invalid.
  • "; break; } return $error; }