Partage
  • Partager sur Facebook
  • Partager sur Twitter

Validiter d'une adresse e-mail en VB.NET

Sujet résolu
21 décembre 2012 à 18:23:41

Bonjour tout le monde, je suis en train de créer un programme qui requière une connexion par adresse e-mail.

J'ai donc ajouté 2 TextBox, et je voudrais effectuer une vérification de l'adresse e-mail, pour ne pas que l'utilisateur rentre comme adresse e-mail "fbjvbd" (exemple).

Un système de vérification qui vérifiera si il y a le caractère "@" et le "." (du ".com" ou ".fr"). Pour éviter toute fraude.
Merci de vos éventuelles réponses.

JIMMY
  • Partager sur Facebook
  • Partager sur Twitter
Débutant en C. Programmation sous Ubuntu 13.10
22 décembre 2012 à 11:13:52

Merci BLue Sh4rk pour ta réponse, cependant, quand je met le code, j'ai cette erreur :

J'ai plusieurs erreurs : Voici un screen , car il y en a ;

http://prntscr.com/mvsv9

(Je suis débutant en Visual Basic) :p
  • Partager sur Facebook
  • Partager sur Twitter
Débutant en C. Programmation sous Ubuntu 13.10
22 décembre 2012 à 11:20:19

Rajoutes :

Imports System.Globalization
Imports System.Text.RegularExpressions


en haut de ton code source.
  • Partager sur Facebook
  • Partager sur Twitter
22 décembre 2012 à 11:33:44

Je les ai déjà importés, cela ne change rien au code. Je ne sais pas d'où cela peut venir.
  • Partager sur Facebook
  • Partager sur Twitter
Débutant en C. Programmation sous Ubuntu 13.10
22 décembre 2012 à 11:42:58

On oublie ce que j'ai dit, on va faire plus simple :

'Avec un bouton appelé Command1
'Avec une textbox appelé Text1

Private Sub Command1_Click()
   If InStr(Text1, "@") = 0 Or _ 'Est ce que dans le texte on a @
    InStr(Text1, ".") = 0 Or _ 'Est ce que dans le texte on a un point
    Len(Text1) < 7 Then ' Est ce que le texte fait plue de 7 caractères
    MsgBox "L'adresse spécifiée n'est pas valide !"
   Else
   MsgBox "Votre adresse est apparement valide..."
   End If
End Sub
  • Partager sur Facebook
  • Partager sur Twitter
22 décembre 2012 à 11:55:14

Merci bien, mais des erreurs persistent :

http://prntscr.com/mvvio

  • Partager sur Facebook
  • Partager sur Twitter
Débutant en C. Programmation sous Ubuntu 13.10
22 décembre 2012 à 11:57:24

Normal, la variable email n'est jamais déclarée.

Ce dois être une variable de type String.

Elle doit normalement contenir la saisie de l'utilisateur dans le champ email.
  • Partager sur Facebook
  • Partager sur Twitter
22 décembre 2012 à 15:56:26

Oui, ais au moment de débuger la form, quand je clique sur le bouton (pour valider l'e-mail, rien ne se passe (comme si c'était valide).

Exemple : "azerty" (en email) lui semble valide (il ne me donne pas d'erreur).

Voici un screen : http://prntscr.com/mwdz6

Merci de vos réponses

EDIT :

J'ai trouvé, mais le problème vient maintenant du nombre :

http://prntscr.com/mwika
  • Partager sur Facebook
  • Partager sur Twitter
Débutant en C. Programmation sous Ubuntu 13.10
22 décembre 2012 à 21:44:40

Fait plutôt comme ceci :

email.Length < 7 Then
  • Partager sur Facebook
  • Partager sur Twitter
22 décembre 2012 à 21:48:20

Erreur :

Erreur 1 'Length' n'est pas un membre de 'Hack_Steam.ReactorTextBox'.

Je ne sais plus comment faire, je commence à désespérer !
  • Partager sur Facebook
  • Partager sur Twitter
Débutant en C. Programmation sous Ubuntu 13.10
23 décembre 2012 à 7:39:53

Dernière solution et unique. Si il y a des erreur, je ne sais pas ce qui se passe chez toi car il marche chez moi :

Imports System.Globalization
Imports System.Text.RegularExpressions

Public Class RegexUtilities
   Dim invalid As Boolean = False

   public Function IsValidEmail(strIn As String) As Boolean
       invalid = False
       If String.IsNullOrEmpty(strIn) Then Return False

       ' Use IdnMapping class to convert Unicode domain names.
       Try
          strIn = Regex.Replace(strIn, "(@)(.+)$", AddressOf Me.DomainMapper, 
                                RegexOptions.None, TimeSpan.FromMilliseconds(200))
       Catch e As RegexMatchTimeoutException
          Return False
       End Try

       If invalid Then Return False

       ' Return true if strIn is in valid e-mail format.
       Try
          Return Regex.IsMatch(strIn, _
                 "^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" + _
                 "(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$", 
                 RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(250))
       Catch e As RegexMatchTimeoutException
          Return False
       End Try  
   End Function

   Private Function DomainMapper(match As Match) As String
      ' IdnMapping class with default property values.
      Dim idn As New IdnMapping()

      Dim domainName As String = match.Groups(2).Value
      Try
         domainName = idn.GetAscii(domainName)
      Catch e As ArgumentException
         invalid = True      
      End Try      
      Return match.Groups(1).Value + domainName
   End Function
End Class
  • Partager sur Facebook
  • Partager sur Twitter
23 décembre 2012 à 18:06:13

Merci de ta réponse, mais il y a encore des erreurs. Pourtant, cela ne semble pas difficile du tout. Je tourne sous Visual Basic 2008 car avec le 2010, j'ai des soucis. Encore merci pour ton aide apporté.
  • Partager sur Facebook
  • Partager sur Twitter
Débutant en C. Programmation sous Ubuntu 13.10
23 décembre 2012 à 18:09:26

Je vais chercher une solution à ton problème. Désolé de te donner que des codes erronés. :p
  • Partager sur Facebook
  • Partager sur Twitter
24 décembre 2012 à 14:14:40

Merci. Je cherche aussi de mon côté.
  • Partager sur Facebook
  • Partager sur Twitter
Débutant en C. Programmation sous Ubuntu 13.10
24 décembre 2012 à 14:32:08

La première solution que t'avais mis en œuvre semble être pas mal.
Tu trouveras un exemple d'utilisation de la classe regex ici:
Regex
  • Partager sur Facebook
  • Partager sur Twitter
24 décembre 2012 à 16:26:55

Citation : youtpout

La première solution que t'avais mis en œuvre semble être pas mal.
Tu trouveras un exemple d'utilisation de la classe regex ici:
Regex



Oui, c'est la classe à utiliser, mais ça ne marche pas chez Jimmy James.
  • Partager sur Facebook
  • Partager sur Twitter
24 décembre 2012 à 16:36:22

Et sinon, personne n'a pensé à utiliser la classe MailAddress ? :)
  • Partager sur Facebook
  • Partager sur Twitter
24 décembre 2012 à 16:40:23

Il semble que la classe Regex n'a pas de constructeur publique qui prend 0 argument.
Sinon il peut faire directement un IsMatch.

Tu veux instancier une adresse mail et récupéré l'erreur pour savoir si elle est incorrecte?
  • Partager sur Facebook
  • Partager sur Twitter
24 décembre 2012 à 16:40:41

Citation : Orwell

Et sinon, personne n'a pensé à utiliser la classe MailAddress ? :)



Pas bête ! :o Je n'y avais même pas pensé.
  • Partager sur Facebook
  • Partager sur Twitter
28 janvier 2016 à 12:07:19

mon adresse Email n'est pas valide
  • Partager sur Facebook
  • Partager sur Twitter
28 janvier 2016 à 12:14:29

mon adresse e-mail n' pas valide qu'est-ce que je fais merci
  • Partager sur Facebook
  • Partager sur Twitter
28 janvier 2016 à 12:14:59

La Ligue des Archéologues vous remercie pour votre contribution aux fouilles sur ce sujet d'il y a 4ans !

On commençait à s'inquiéter et on pensait l'avoir perdu !

  • Partager sur Facebook
  • Partager sur Twitter
Si un message vous a aidé, n'oubliez pas le +1 et de passer votre sujet en "Résolu" ! :)
16 juin 2020 à 14:47:11 - Message modéré pour le motif suivant : Message complètement hors sujet


16 juin 2020 à 17:05:48

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL