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

PL/SQL Oracle Discussion :

Controler la validité d'un email


Sujet :

PL/SQL Oracle

  1. #1
    Membre confirmé
    Avatar de argoet
    Inscrit en
    Mai 2002
    Messages
    582
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 582
    Points : 562
    Points
    562
    Par défaut Controler la validité d'un email
    cela m'a été utile alors si cela peu en aider d'autres

    Merci à Anil PAssi

    Legerement modifié cela donne
    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
    Create Or Replace Function check_email(Mon_Email in Varchar2)
      Return Varchar2 Is
      l_dot_pos    NUMBER;
      l_at_pos     NUMBER;
      l_str_length NUMBER;
    Begin
      l_dot_pos    := instr(Mon_Email ,'.');
      l_at_pos     := instr(Mon_Email ,'@');
      l_str_length := length(Mon_Email);
      If ((l_dot_pos = 0) OR (l_at_pos = 0)  OR
          (l_dot_pos = l_at_pos + 1) OR (l_str_length < 4) OR
          (l_at_pos  = 1)  OR (l_at_pos = l_str_length) OR
          (l_dot_pos = l_str_length))
      Then
        RETURN 'KO';
      End If;
      If instr(substr(Mon_Email ,l_at_pos) ,'.') = 0 Then Return 'KO'; End If;
      Return 'OK';
    END check_email;

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Mouais.. mais forcemment, on va te trouver des cas qui ne marchent pas..
    quand j'ai vu ça : l_dot_pos = l_at_pos + 1, j'ai vu une faille
    a.b@.fr
    passe

    Je pense que le mieux c'est de tester les choses suivantes :
    1 seul @
    Taille à gauche du @ > 0
    Taille à droite du @ > 0
    A droite du @ : 1 seul . avec au moins 1 caractère à droite et à gauche.

  3. #3
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Une autre solution utilise des expressions régulières (à partir de Oracle 10). Et un lien utile qui discute du problème.

Discussions similaires

  1. [A-07] Controles de validité Me.Dirty - Sous-Form
    Par AuroreBezu dans le forum IHM
    Réponses: 8
    Dernier message: 04/01/2009, 00h42
  2. Vérifier la validité d'un email en ASP VB
    Par Cmoi11 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/08/2008, 14h45
  3. Controle de validité sur une liste déroulante
    Par francois134 dans le forum IHM
    Réponses: 3
    Dernier message: 04/02/2008, 06h12
  4. Informations sur le controle de validité du formulaire
    Par stardeus dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/06/2007, 12h46
  5. Script validité d'un email ?
    Par rocs dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 15/06/2005, 14h53

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