bonjour a tous,
je recherche un gourou en regexp pour m'aider a resoudre un probleme a la
ligne 4. Un utilisateur avec un ' dans son email est refusé. exemple
jerome.d'antoin@??? est refusé.
deuxieme truc, je ne comprend pas pourquoi il y a deux fois ' a la ligne 7
pour le str_replace.
Ce bout de code est issue du forum phpBB2, j'ai volontairement effacé
quelques lignes pour que ce message ne soit pas trop long.
Merci d'avance
Stephane
http://www.koders.com/php/fidAAF1B7E80EE7ED9F03A603B2034EAFDAFD503B8E.aspx
1 function validate_email($email) {
2 global $db, $lang;
3 if ($email != '') {
4 if
(preg_match('/^[a-z0-9&\'\.\-_\+]+@[a-z0-9\-]+\.([a-z0-9\-]+\.)*?[a-z]+$/is',
$email)) {
5 $sql = "SELECT user_email
6 FROM " . USERS_TABLE . "
7 WHERE user_email = '" . str_replace("\'", "''", $email) . "'";
8 if (!($result = $db->sql_query($sql))) {
9 message_die(GENERAL_ERROR, "Couldn't obtain user email information.",
"", __LINE__, __FILE__, $sql);
}
if ($row = $db->sql_fetchrow($result)) {
return array('error' => true, 'error_msg' => $lang['Email_taken']);
}
$db->sql_freeresult($result);
return array('error' => false, 'error_msg' => '');
}
}
return array('error' => true, 'error_msg' => $lang['Email_invalid']);
}