par
Dr@ke » 18 févr. 2010, 19:01
Oui et puis après reflections, c'est surement une combinaison de plusieurs éléments qui produit ce bug.
Donc pour être précis , voici la reg en question.
Bug avec \w (PCRE version: 7.9 2009-04-11):
// Vérifier le format d'un email par Dr@ke
function verif_mail($email) {
if(strlen($email) < MAX_EMAIL_F && preg_match('#^\w+([-_.]\w+)?([-_.]\w+)?@\w+([-.]\w+)?\.[a-z]{2,4}$#', $email)) {
if (is_win() && PHP_VERSION_ID < 50300) return true;
else {
$domaine = explode('@', $email);
return (checkdnsrr($domaine[1], 'NS'));
}
}
else return false;
}
Fonctionne sans \w (PCRE version: 7.9 2009-04-11):
// Vérifier le format d'un email par Dr@ke
function verif_mail($email) {
if(strlen($email) < MAX_EMAIL_F && preg_match('#^[a-z0-9]+([-_.][a-z0-9]+)?([-_.][a-z0-9]+)?@[a-z0-9]+([-.][a-z0-9]+)?\.[a-z]{2,4}$#', $email)) {
if (is_win() && PHP_VERSION_ID < 50300) return true;
else {
$domaine = explode('@', $email);
return (checkdnsrr($domaine[1], 'NS'));
}
}
else return false;
}
Pas simple de décoder le changelog en anglais.
Mais il est possible que
\w+ ou la combinaison avec
()?
Ou comme dit
Berzemus, une mauvaise configuration du serveur.
PS:
Pour les tests, le mieux est d'enlever le checkdnsrr
Oui et puis après reflections, c'est surement une combinaison de plusieurs éléments qui produit ce bug.
Donc pour être précis , voici la reg en question.
[u]Bug avec [b]\w[/b] [i](PCRE version: 7.9 2009-04-11)[/i]:[/u]
[php] // Vérifier le format d'un email par Dr@ke
function verif_mail($email) {
if(strlen($email) < MAX_EMAIL_F && preg_match('#^\w+([-_.]\w+)?([-_.]\w+)?@\w+([-.]\w+)?\.[a-z]{2,4}$#', $email)) {
if (is_win() && PHP_VERSION_ID < 50300) return true;
else {
$domaine = explode('@', $email);
return (checkdnsrr($domaine[1], 'NS'));
}
}
else return false;
}[/php]
[u]Fonctionne sans \w [i](PCRE version: 7.9 2009-04-11)[/i]:[/u]
[php] // Vérifier le format d'un email par Dr@ke
function verif_mail($email) {
if(strlen($email) < MAX_EMAIL_F && preg_match('#^[a-z0-9]+([-_.][a-z0-9]+)?([-_.][a-z0-9]+)?@[a-z0-9]+([-.][a-z0-9]+)?\.[a-z]{2,4}$#', $email)) {
if (is_win() && PHP_VERSION_ID < 50300) return true;
else {
$domaine = explode('@', $email);
return (checkdnsrr($domaine[1], 'NS'));
}
}
else return false;
}[/php]
Pas simple de décoder le changelog en anglais.
Mais il est possible que [b]\w+[/b] ou la combinaison avec [b]()?[/b]
Ou comme dit [b]Berzemus[/b], une mauvaise configuration du serveur.
[i]PS:
Pour les tests, le mieux est d'enlever le checkdnsrr[/i]