My favorites | Sign in
Project Logo
                
Details: Show all Hide all

Earlier this year

  • Mar 29, 2009
    issue 5 (Better email validation regexp) reported by ozhozh   -   I think the closest-to-perfection email validation is the following stuff: http://www.addedbytes.com/php/email-address-validation function is_valid_email($email) { // Email invalid because wrong number of characters in one section, or wrong number of @ symbols. if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) 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; } } if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name $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; } Much more reliable than the single line you're using
    I think the closest-to-perfection email validation is the following stuff: http://www.addedbytes.com/php/email-address-validation function is_valid_email($email) { // Email invalid because wrong number of characters in one section, or wrong number of @ symbols. if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) 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; } } if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name $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; } Much more reliable than the single line you're using
  • Feb 02, 2009
    issue 4 (email validation regex is broken for dashes!) reported by ches.martin   -   preg_match("/^[A-Z0-9._%-\+]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i", $email); The dash in the first part is trying to specify a range. It needs to be escaped with a backslash, or put at the end of the bracket set. I'd attach a patch but it's one character ;-) So, we've been denying folks with dashes for all this time!
    preg_match("/^[A-Z0-9._%-\+]+@[A-Z0-9.-]+.[A-Z]{2,4}$/i", $email); The dash in the first part is trying to specify a range. It needs to be escaped with a backslash, or put at the end of the bracket set. I'd attach a patch but it's one character ;-) So, we've been denying folks with dashes for all this time!
  • Jan 08, 2009
    issue 2 (Akismet class is for PHP 4) reported by philipashlock   -   The Akismet class included in the source here is for PHP 4, you can get a PHP 5 version at http://www.achingbrain.net/stuff/php/akismet#download
    The Akismet class included in the source here is for PHP 4, you can get a PHP 5 version at http://www.achingbrain.net/stuff/php/akismet#download
 
Hosted by Google Code