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 :

Validation d'une adresse mail [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut Validation d'une adresse mail
    Bonjour,

    Dans un script de mail j'ai créé une structure de contrôle de validité de l'adresse. Hors dans la seconde partie de l'adresse je veux exclure une chaîne afin que si le code la trouve il invalide l'adresse. cette chaine est :
    "mail.ircf", je ne dois pas avoir correctement codé ma $pattern car ça ne marche pas. Voici le code, en rouge la chaîne à exclure...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $email = $_POST['email'];
    $pattern = '/(^[0-9])([a-z0-9])+(\.|-)?([a-z0-9]+)@([a-z0-9]+)\.[^"mail\.ircf"]([a-z]{2,4}$)/';
    $mailValid = preg_match($pattern, $email);
    Merci de vos réponses

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2005
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2005
    Messages : 88
    Points : 107
    Points
    107
    Par défaut
    Salut,
    Ce que je ferai moi pour moins me prendre la tête, c'est d'appeller une fois preg_match pour la validiter du mail et une deuxième fois pour chercher 'mail.icrf'.
    Dans le deuxieme pattern tu nauras qu'à chercher '*@mail.icrf*'

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    297
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 297
    Points : 303
    Points
    303
    Par défaut
    je pense que t'es " " sont en trop...
    je pense que les [] font office en quelque sorte de ""

  4. #4
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut intéressant
    La solution "feinte" d'un 2eme contrôle est intéressante, je bosse dessus, mais avec ta syntaxe voici ce qu'on me retourne...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: preg_match() [function.preg-match]: Empty regular expression in /var/www/html/l0-040/mailing.php on line 55
    euh... je suis dessus.

  5. #5
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut guillemet et accolades
    Citation Envoyé par juJuv51
    je pense que t'es " " sont en trop...
    je pense que les [] font office en quelque sorte de ""
    En fait, je crois que les guillemets sont utiles lorsqu'on veut notifier une chaine spécifique, les accolades spécifient une suite de charactères sans ordre déterminés ainsi "^mail" excluerai exactement 'mail' alors que ^[mail] excluerai 'm' 'ma' 'mai' 'ail' 'ai' ... etc (si j'ai tout compris (ce qui est loin d'être sûr

  6. #6
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    Salut,
    essaie avec cette fonction :
    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
    function email_valid($email, $check_server = TRUE)
    {
    	if (preg_match('#^[^@]*?@(.*?\.[a-zA-Z]{2,4})$#i', $email, $match))
    	{
    		if (preg_match('#^.+?@mail\.ircf$#i', $email))
    		{
    			return (FALSE);
    		}
     
    		if (!$check_server)
    		{
    			return (TRUE);
    		}
     
    		$check = FALSE;
    		if (function_exists('checkdnsrr'))
    		{
    			$check = checkdnsrr($match[1]);
    		}
     
    		if (!$check)
    		{
    			$errno = 0;
    			$errstr = '';
    			$check = @fsockopen($match[1], 25, $errno, $errstr, 5);
    		}
     
    		return ($check);
    	}
    	return (FALSE);
    }
    qui te vérifie en plus si l'host de l'email existe

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (email_valid('toto@yahoo.fr'))
    {
       echo 'Valide !';
    }
    tu peux passer FALSE en second paramètre pour annuler la vérification du dns.

  7. #7
    Membre actif Avatar de elvan49
    Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Octobre 2006
    Messages : 274
    Points : 204
    Points
    204
    Par défaut Nickel chrome
    La fonction marche à merveille (tu t'en doutais) !
    Affaire classée !!!

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/03/2012, 11h59
  2. [XL-2010] Formule pour tester une adresse mail valide
    Par patch2007 dans le forum Excel
    Réponses: 1
    Dernier message: 08/03/2012, 16h50
  3. Réponses: 2
    Dernier message: 22/04/2011, 15h26
  4. [RegExp] Valider une adresse mail tout en interdisant un domaine
    Par chagam dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 01/03/2011, 08h55
  5. [RegEx] Validation d'une adresse e-mail
    Par sarah65536 dans le forum Langage
    Réponses: 11
    Dernier message: 30/03/2009, 16h51

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