Marc TERRIER a écrit :
> Marc BERLIOUX a écrit :
>
> [...]
>
>> // 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;
>> }
>> }
>
> Bonjour Marc,
>
> Il y a quelque chose qui me choque dans l'expression régulière
> ci-dessus :
>
> ^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$
>
> ^^
>
> Tu ne dois normalement pas avoir de '.' dans les éléments du tableau
> local_array, qui proviennent d'un explode avec le caractère '.' pris
> comme délimiteur.
>
bien vu !
le gars a du faire des copier-coller...
ça ne doit pas altérer le test toutefois
>> [...] elle refuse encore les adresses comme
>>
>> "Abc@???, "Fred Bloggs"@???,
>> "Joe.\\Blow"@???
>
> "Abc@??? : c'est normal que ce soit rejeté, parce que la
> vérification du nombre d'@ ne tient pas compte des éventuels
> guillemets, qui ne sont pris en compte qu'un peu plus loin.
>
oui, il faut que je le modifie.
"Abcdef"@??? ne matche pas non plus
>> mais elle accepte !#$%&'*+-/=?^_`.{|}~@example.com
>> net progrès !
>
> Super, en effet, comme adresse e-mail ! :-)
>
t'es sur de pas recevoir trop de spam au moins ...
l'adresse à donner à sa belle-mère par exemple 8-)
> En tout cas, une chose est sûre, c'est plus compliqué qu'on pourrait
> le penser de prime abord.
>
on devrait en faire un petit concours interne à la guilde.
> Cordialement,
>
> Marc
>
tout autant
--
Marc