IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Envoi de mail : erreur eregi [RegEx]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Envoi de mail : erreur eregi
    Bonjour
    dans mon script d'envoi mail,
    j'ai une erreur qui s'affiche sur mon site : avec EREGi
    hébergement sur Pro OVH (htaccess :déclaration php 5.3)

    Je reçois bien les mails :
    mais en front j'ai
    Deprecated: Function eregi() is deprecated in /homez.579/cent/www/j/j/functions.php on line 508

    Une erreur est survenue lors de l'envoi du formulaire :
    === if(!eregi est une expression qui demande à être remplacée
    selon le manuel PHP ===


    j'ai essayé ===
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //if(!preg_match("^[/COLOR][/B]((([a-z]|
    == mais cela ne marche pas !
    quelqu'un peut-il m'aider à y voir clair ?

    Merci
    PAGE MAIL FUNCTIONS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    function check_mail($string, $return = FALSE) {
    	if($return == TRUE) {
    	  if(eregi("((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa|uk|eu))|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))", $string, $match)) return $match;
    		else return false;
    	}
    	  if(eregi("^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa|uk|eu))|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$", $string)) return true;
    	else return false; // décommentée 2 fois
    }
    
    function send_mail($user = 0, $subject, $message) {
      global $cfg, $database;
      $mail = new htmlMimeMail5();
      //on envoie le mail 
      $mail->setSubject('J\'dea : '.$subject);
      if($user === 0) $to = 'J\'dea <'.$cfg['contact_mail'].'>';
      elseif(!is_numeric($user)) {
    	if(!check_mail($user)) throw new Exception('Adresse e-mail incorrecte');
    	$to = $user;
      }
      else {
    	//récupération de l'utilisateur
    	$get_user_query = "SELECT aff_id, aff_name, aff_mail FROM ".$cfg['db_prefix']."affilies WHERE aff_id = ".$database->quote($user)." LIMIT 1";
    	$get_user = $database->query($get_user_query)->fetch();
    	if($get_user['aff_id'] != $user) throw new Exception('Utilisateur introuvable.');
    	$to = $get_user['aff_name'].' <'.$get_user['aff_mail'].'>';
      }
      //echo 'TEST : '.$to."<br />\n"; $mail->setFrom('J\'dea <contact@alv.fr>'); // A CHANGER;
      $mail->setFrom('J <j@gmail.com>'); // A CHANGER;
      $mail->setText("Bonjour.\n".$message."\n\nCordialement, l'équipe .");
      if(!$mail->send(array($to))) throw new Exception('Erreur lors de l\'envoi du message.');
      throw new Exception('Votre email est parti. Nous vous recontacterons. J\'dea');
      /*var_dump($mail); 
      die();*/
        //throw new Exception('Espérons que le mail est parti.');
      var_dump($mail);// REMIS 
      die();
      //var_dump($mail);
      //die();
    }

    PAGE CONTACT

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    foreach($mess_erreur as $cid => $champ) {
    	if(empty($_POST[$champ]) && empty($_FILES[$champ])) array_push($erreurs, $cid);
    }
    if(count($erreurs) > 0) array_push($error_message, 'Veuillez remplir tous les champs requis.');
    // preg_match remplace eregi
    if(!ereg("^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa|uk))|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$", $_POST['email'])) 
    //if(!preg_match("^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa|uk))|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$", $_POST['email'])) 
    {
    	array_push($erreurs, 3);
    	array_push($error_message, 'Veuillez entrer une adresse e-mail valide.');
    }
    //vérification du fichier envoyé
    if(!isset($_FILES['cv']) || $_FILES['cv']['size'] == 0) {array_push($erreurs, 4); array_push($error_message, 'Veuillez sélectionner un fichier à envoyer.');}
    else {
    	if($_FILES['cv']['size'] > 1000000) {array_push($erreurs, 4); array_push($error_message, 'Le fichier envoyé est trop volumineux (maximum : 1mo).');}
    	$mimes = array('application/msword', 'application/pdf', 'application/vnd.oasis.opendocument.text', 'application/x-vnd.oasis.opendocument.text');
    	if(!in_array($_FILES['cv']['type'], $mimes)) {array_push($erreurs, 4); array_push($error_message, 'Le format du fichier n\'est pas autorisé (formats attendus : PDF, DOC, ODT).');}
    	}
    } else {
    	array_push($error_message, 'Veuillez remplir correctement les champs.');
    }
    if(count($error_message) == 0) {
            try {
    		//*$mail = new htmlMimeMail5(); REMIS A CHANGER
    		$mail = new htmlMimeMail5();
    		//on envoie le mail
    		$mail->setSubject('Envoi de candidature sur J\'dea : '.$_POST['sujet']);
    		$to = 'J\'dea <'.$cfg['admin_mail'].'>';

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Avec preg_match il faut un delimiteur en debut et en fin de chaine pour l'expression.
    La difficulté va être de trouver un caractère qui n'est pas présent dans ton expression monstrueuse.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut fonction
    Merci de ta réponse

    est ce que les délimiteurs du début sont correct si je remplace ereg par pregmatch ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il te faut par exemple
    ici # est le delimiteur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut délimiteur
    Super merçi de ton aide :
    j'ai remplacé

    if(eregi("^((([a-z]|[0-9]|

    par if(!preg_match("#((([a-z]

    j'ai remplacé '|' par #

    et j'ai cette erreur à nouveau : Warning: preg_match() [function.preg-match]: Unknown modifier '['

    sur cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    								if(!preg_match("#((([a-z]#[0-9]#!###$#%#&#'#\*#\+#\-#/#=#\?#\^#_#`#\{#\##\}#~)+(\.([a-z]#[0-9]#!###$#%#&#'#\*#\+#\-#/#=#\?#\^#_#`#\{#\##\}#~)+)*)@((((([a-z]#[0-9])([a-z]#[0-9]#\-){0,61}([a-z]#[0-9])\.))*([a-z]#[0-9])([a-z]#[0-9]#\-){0,61}([a-z]#[0-9])\.(af#ax#al#dz#as#ad#ao#ai#aq#ag#ar#am#aw#au#at#az#bs#bh#bd#bb#by#be#bz#bj#bm#bt#bo#ba#bw#bv#br#io#bn#bg#bf#bi#kh#cm#ca#cv#ky#cf#td#cl#cn#cx#cc#co#km#cg#cd#ck#cr#ci#hr#cu#cy#cz#dk#dj#dm#do#ec#eg#sv#gq#er#ee#et#fk#fo#fj#fi#fr#gf#pf#tf#ga#gm#ge#de#gh#gi#gr#gl#gd#gp#gu#gt# gg#gn#gw#gy#ht#hm#va#hn#hk#hu#is#in#id#ir#iq#ie#im#il#it#jm#jp#je#jo#kz#ke#ki#kp#kr#kw#kg#la#lv#lb#ls#lr#ly#li#lt#lu#mo#mk#mg#mw#my#mv#ml#mt#mh#mq#mr#mu#yt#mx#fm#md#mc#mn#ms#ma#mz#mm#na#nr#np#nl#an#nc#nz#ni#ne#ng#nu#nf#mp#no#om#pk#pw#ps#pa#pg#py#pe#ph#pn#pl#pt#pr#qa#re#ro#ru#rw#sh#kn#lc#pm#vc#ws#sm#st#sa#sn#cs#sc#sl#sg#sk#si#sb#so#za#gs#es#lk#sd#sr#sj#sz#se#ch#sy#tw#tj#tz#th#tl#tg#tk#to#tt#tn#tr#tm#tc#tv#ug#ua#ae#gb#us#um#uy#uz#vu#ve#vn#vg#vi#wf#eh#ye#zm#zw#com#edu#gov#int#mil#net#org#biz#info#name#pro#aero#coop#museum#arpa#uk))#(((([0-9]){1,3}\.){3}([0-9]){1,3}))#(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$", $_POST['email'])) 
     
     
    								 '['
    Je n'arrive pas à repérer ce qui cloche :
    ca se passe où.

    Merci de ton aide

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    vu ton pattern, je n'aurais pas mis # comme délimiteur.
    sabotage t'as montré juste un exemple...
    Réessaies avec un délimiteur plus exotique (que t'as moins de chance de retrouver dans ton pattern), le tilde : ~

  7. #7
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut délimiteur
    merci à toi

    je vais essayer de suite

  8. #8
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Délimiteur
    en fait en testant avec plusieurs signes le délimiteur me renvoie toujours une erreur sur la ligne ::

    Warning: preg_match() [function.preg-match]: Unknown modifier '[' in /home/functions.php on line 510
    mais je ne comprends pas pourquoi modifer '['

    Comment faire la ligne en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function check_mail($string, $return = FALSE) {
    	if($return == TRUE) {
    	  //if(ereg("((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa|uk|eu))|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))", $string, $match)) return $match;
    	if(!preg_match("#^((([a-z]#[0-9]#!###$#%#&#'#\*#\+#\-#/#=#\?#\^#_#`#\{#\##\}#~)+(\.([a-z]#[0-9]#!###$#%#&#'#\*#\+#\-#/#=#\?#\^#_#`#\{#\##\}#~)+)*)@((((([a-z]#[0-9])([a-z]#[0-9]#\-){0,61}([a-z]#[0-9])\.))*([a-z]#[0-9])([a-z]#[0-9]#\-){0,61}([a-z]#[0-9])\.(af#ax#al#dz#as#ad#ao#ai#aq#ag#ar#am#aw#au#at#az#bs#bh#bd#bb#by#be#bz#bj#bm#bt#bo#ba#bw#bv#br#io#bn#bg#bf#bi#kh#cm#ca#cv#ky#cf#td#cl#cn#cx#cc#co#km#cg#cd#ck#cr#ci#hr#cu#cy#cz#dk#dj#dm#do#ec#eg#sv#gq#er#ee#et#fk#fo#fj#fi#fr#gf#pf#tf#ga#gm#ge#de#gh#gi#gr#gl#gd#gp#gu#gt# gg#gn#gw#gy#ht#hm#va#hn#hk#hu#is#in#id#ir#iq#ie#im#il#it#jm#jp#je#jo#kz#ke#ki#kp#kr#kw#kg#la#lv#lb#ls#lr#ly#li#lt#lu#mo#mk#mg#mw#my#mv#ml#mt#mh#mq#mr#mu#yt#mx#fm#md#mc#mn#ms#ma#mz#mm#na#nr#np#nl#an#nc#nz#ni#ne#ng#nu#nf#mp#no#om#pk#pw#ps#pa#pg#py#pe#ph#pn#pl#pt#pr#qa#re#ro#ru#rw#sh#kn#lc#pm#vc#ws#sm#st#sa#sn#cs#sc#sl#sg#sk#si#sb#so#za#gs#es#lk#sd#sr#sj#sz#se#ch#sy#tw#tj#tz#th#tl#tg#tk#to#tt#tn#tr#tm#tc#tv#ug#ua#ae#gb#us#um#uy#uz#vu#ve#vn#vg#vi#wf#eh#ye#zm#zw#com#edu#gov#int#mil#net#org#biz#info#name#pro#aero#coop#museum#arpa#uk))#(((([0-9]){1,3}\.){3}([0-9]){1,3}))#(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$", $string, $match)) return $match; 
    		else return false;
    	}
    	  //if(ereg("^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.(af|ax|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|au|at|az|bs|bh|bd|bb|by|be|bz|bj|bm|bt|bo|ba|bw|bv|br|io|bn|bg|bf|bi|kh|cm|ca|cv|ky|cf|td|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|ga|gm|ge|de|gh|gi|gr|gl|gd|gp|gu|gt| gg|gn|gw|gy|ht|hm|va|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jp|je|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|ps|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|sh|kn|lc|pm|vc|ws|sm|st|sa|sn|cs|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|tl|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|gb|us|um|uy|uz|vu|ve|vn|vg|vi|wf|eh|ye|zm|zw|com|edu|gov|int|mil|net|org|biz|info|name|pro|aero|coop|museum|arpa|uk|eu))|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$", $string)) return true;
     
    	  if(!preg_match("#^((([a-z]#[0-9]#!###$#%#&#'#\*#\+#\-#/#=#\?#\^#_#`#\{#\##\}#~)+(\.([a-z]#[0-9]#!###$#%#&#'#\*#\+#\-#/#=#\?#\^#_#`#\{#\##\}#~)+)*)@((((([a-z]#[0-9])([a-z]#[0-9]#\-){0,61}([a-z]#[0-9])\.))*([a-z]#[0-9])([a-z]#[0-9]#\-){0,61}([a-z]#[0-9])\.(af#ax#al#dz#as#ad#ao#ai#aq#ag#ar#am#aw#au#at#az#bs#bh#bd#bb#by#be#bz#bj#bm#bt#bo#ba#bw#bv#br#io#bn#bg#bf#bi#kh#cm#ca#cv#ky#cf#td#cl#cn#cx#cc#co#km#cg#cd#ck#cr#ci#hr#cu#cy#cz#dk#dj#dm#do#ec#eg#sv#gq#er#ee#et#fk#fo#fj#fi#fr#gf#pf#tf#ga#gm#ge#de#gh#gi#gr#gl#gd#gp#gu#gt#gg#gn#gw#gy#ht#hm#va#hn#hk#hu#is#in#id#ir#iq#ie#im#il#it#jm#jp#je#jo#kz#ke#ki#kp#kr#kw#kg#la#lv#lb#ls#lr#ly#li#lt#lu#mo#mk#mg#mw#my#mv#ml#mt#mh#mq#mr#mu#yt#mx#fm#md#mc#mn#ms#ma#mz#mm#na#nr#np#nl#an#nc#nz#ni#ne#ng#nu#nf#mp#no#om#pk#pw#ps#pa#pg#py#pe#ph#pn#pl#pt#pr#qa#re#ro#ru#rw#sh#kn#lc#pm#vc#ws#sm#st#sa#sn#cs#sc#sl#sg#sk#si#sb#so#za#gs#es#lk#sd#sr#sj#sz#se#ch#sy#tw#tj#tz#th#tl#tg#tk#to#tt#tn#tr#tm#tc#tv#ug#ua#ae#gb#us#um#uy#uz#vu#ve#vn#vg#vi#wf#eh#ye#zm#zw#com#edu#gov#int#mil#net#org#biz#info#name#pro#aero#coop#museum#arpa#uk))#(((([0-9]){1,3}\.){3}([0-9]){1,3}))#(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$", $string)) return true;
     
    	else return false; 
     
    	}

  9. #9
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu as mis # comme délimiteur, donc il considère que le pattern s'arrête dès qu'il rencontre un # non échappé.

    Ce qu'il faut, c'est utiliser comme délimiteur un caractère non utilisé à l'intérieur du pattern, ou alors échapper toutes les utilisations du caractère délimiteur à l'intérieur du pattern.

    Donc si ton pattern d'origine est [a-z]|[0-9]|!|#, tu peux utiliser par exemple ~ comme délimiteur, ce qui donne ~[a-z]|[0-9]|!|#~ ou utiliser # et les échapper, ce qui donne #[a-z]|[0-9]|!|\##.

    A (re)lire : Initiation aux expressions régulières en PHP
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Le délimiteur est mis une fois au début et une fois à la fin du motif.
    Après le délimiteur de fin, on met les modificateurs (d'ou le message d'erreur).
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Expression preg_match
    Merci de votre aide :
    Cette fois je crois que j'ai compris

    je remplace # par ~

    et à chaque délimiteur je mets \~

    et je n'aurais plus d'erreur .
    C'est celà ?

  12. #12
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je ne comprends pas ce que tu veux dire par "à chaque délimiteur".
    Il y a seulement 2 délimiteurs : un au début et un à la fin. Si tu utilises le caractère délimiteur dans le pattern, il faut l’échapper pour qu'il ne soit pas considéré comme un délimiteur.

    Donc si tu choisis ~ comme délimiteur,bl'équivalent de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (eregi("([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|~)", $string, $match)) 
      return $match;
    sera
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (preg_match("~([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|/|=|\?|\^|_|`|\{|\||\}|\~)~i", $string, $matches)) 
      return $matches[0];
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  13. #13
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2013
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2013
    Messages : 11
    Points : 3
    Points
    3
    Par défaut Délimiteur
    Merci Celira
    j'ai enfin compris !

    Bien à toi
    bon week-end

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. envoi de mail+ erreur smtp
    Par ballantine's dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2010, 14h07
  2. Envoi de mail : Erreur inexplicable
    Par kmaniche dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/11/2009, 14h48
  3. Réponses: 1
    Dernier message: 20/05/2008, 13h42
  4. envoi de mail : Erreur d'exécution '2293'
    Par sebinator dans le forum VBA Access
    Réponses: 4
    Dernier message: 29/02/2008, 09h10
  5. Envoi de mail erreur relais
    Par Antichoc dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 05/01/2008, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo