aide en regexp

Pàgina inicial

Reply to this message
Autor: stephane driussi
Data:  
A: ML Guilde
Assumpte: aide en regexp
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']);
}