Hi folks, I'm building a registration system for a site for user accounts. I made the form, and it adds the info to a MySQL database. Anyways, I'm concerned with security and validity. Here are some things that I need to know how to do: limit characters -- only specific characters can be used, for example only the characters A-Z can be used for entering a name. check for valid email -- emails must follow the standard format. character count limit -- if the character count is greater than a certain amount, the entered info is invalid, so a user can't add a 10000 character username for example. these are the major things that I need help with. Any help, or even a point in the right direction, will be greatly appreciated. Thanks!
functions: <?php function isValidEmail($email) { // First, we check that there's one @ symbol, // and that the lengths are right. if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) { // Email invalid because wrong number of characters // in one section or wrong number of @ symbols. return false; } // Split it into sections to make life easier $email_array = explode("@", $email); $local_array = explode(".", $email_array[0]); for ($i = 0; $i < sizeof($local_array); $i++) { if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&↪'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) { return false; } } // Check if domain is IP. If not, // it should be valid domain name if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { $domain_array = explode(".", $email_array[1]); if (sizeof($domain_array) < 2) { return false; // Not enough parts to domain } for ($i = 0; $i < sizeof($domain_array); $i++) { if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])| ↪([A-Za-z0-9]+))$", $domain_array[$i])) { return false; } } } return true; } // --------------------------------------------- function isOnlyLetters($var) { return (preg_match("/^[a-zA-Z]+$/", $var)) ? true : false; } // --------------------------------------------- function isValidLength($var, $length) { return (strlen($var) <= $length) ? true : false; } PHP: Use: $email = 'me@me.com'; if (isValidEmail($email)) { echo 'valid'; } else { echo 'invalid'; } $field = 'testing'; if (isOnlyLetters($field)) { echo 'only letters'; } else { echo 'not just letters!'; } $field = '12345678'; if (isValidLength($field, 8)) { echo 'valid length'; } else { echo 'invalid length'; } PHP:
can we use below? function isOnlyLetters ($string) { return ( ctype_alpha ( $string ) ) ? true : false; // PHP 4 >= 4.0.4, PHP 5 } Code (PHP): OR just use the PHP function ctype_alpha($string) lonely, don't have to call an external function $field1 = 'testingazAZ'; if (ctype_alpha($field1)) { echo $field1.' : only letters<br>';} else { echo $field1.' : not just letters<br>';} Code (PHP):