eregi - This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
mysql_escape_string - This function has been DEPRECATED as of PHP 5.3.0. Relying on this feature is highly discouraged.
выложил для сравнения предложенные варианты валидации email-а
1.
ExDragon
2.
shamun
3-4
Праведник
$regemail = funcValidEmail(...);
if ($regemail && $regname && ..) достаточная проверка далее по коду.
Код:
<pre>
<?php
function CheckEmail($Email, $Strict = FALSE) {
if ($Strict === TRUE) {
$qtext = '[^\\x0d\\x22\\x5c\\x80-\\xff]';
$dtext = '[^\\x0d\\x5b-\\x5d\\x80-\\xff]';
$atom = '[^\\x00-\\x20\\x22\\x28\\x29\\x2c\\x2e\\x3a-\\x3c\\x3e\\x40\\x5b-\\x5d\\x7f-\\xff]+';
$pair = '\\x5c[\\x00-\\x7f]';
$domain_literal = "\\x5b($dtext|$pair)*\\x5d";
$quoted_string = "\\x22($qtext|$pair)*\\x22";
$sub_domain = "($atom|$domain_literal)";
$word = "($atom|$quoted_string)";
$domain = "$sub_domain(\\x2e$sub_domain)*";
$local_part = "$word(\\x2e$word)*";
$expression = "/^$local_part\\x40$domain$/D";
}
else {
$expression = '/^[-_a-z0-9\'+*$^&%=~!?{}]++(?:\.[-_a-z0-9\'+*$^&%=~!?{}]+)*+@(?:(?![-.])[-a-z0-9.]+(?<![-.])\.[a-z]{2,6}|\d{1,3}(?:\.\d{1,3}){3})(?::\d++)?$/iD';
}
return (bool) preg_match($expression, (string) $Email);
};
$email = 'tadjm-..-ahal@gmail.com';
var_dump(eregi("^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\._-]+\.[a-zA-Z]{2,4}$",$email));
var_dump(preg_match('/^([a-z0-9])(([-a-z0-9._])*([a-z0-9]))*\@([a-z0-9])*(\.([a-z0-9])([-a-z0-9_-])([a-z0-9])+)*$/i',$email));
var_dump(CheckEmail($email,true));
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
Код:
int(1)
int(1)
bool(false)
bool(false)
ни и сравнить с {tadjmahal}@gmail.com и
tadjmahal@gmail.travel
скачайте DBSimple...там и транзакции есть и "правильное" закавычивание, ну или
mysql_real_escape_string используйте