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 :

[Mail] Champ qui doit contenir un @


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut [Mail] Champ qui doit contenir un @
    Bonjour all,
    Désolé si c'est la mauvaise section, c'est tellement grand
    Enfin bref me voilou =D

    J'aimerai savoir comment faire pour que l'internaute doivent obligatoirement mettre un "@" dans le champ sinon : "L'adresse mail n'est pas valide".

    En fait il me faudrais juste la condition.

    Merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 393
    Points : 15 754
    Points
    15 754
    Par défaut
    pour vérifier s'il y a un caractère dans une chaine de caractères tu peux utiliser la fonction http://php.net/strpos

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Salut et merci de ta réponse =D
    Voilà mon code :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Spirit</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
       </head>
       <body>
     
    <?php
    if (isset($_POST['pseudo']) AND isset($_POST['mot_de_passe']) AND isset($_POST['QuestionSecrete']) AND isset($_POST['Reponse']) AND isset($_POST['serveur']) AND isset($_POST['mystring']) AND isset($_POST['findme']) AND isset($_POST['pos']) ) // Si les variables existent
    {
        if ($_POST['pseudo'] != NULL AND $_POST['mot_de_passe'] != NULL AND $_POST['QuestionSecrete'] != NULL AND $_POST['Reponse'] != NULL AND $_POST['AdresseMail'] != NULL AND $_POST['serveur'] != NULL)  // Si on a quelque chose à enregistrer
        {
            //Connection à Mysql
            mysql_connect("localhost", "root", "");
            mysql_select_db("inscription");
            //Sécurité
            $mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
            $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
    		$QuestionSecrete = mysql_real_escape_string(htmlspecialchars($_POST['QuestionSecrete']));
    		$Reponse = mysql_real_escape_string(htmlspecialchars($_POST['Reponse']));
    		$AdresseMail = mysql_real_escape_string(htmlspecialchars($_POST['AdresseMail']));
    		$serveur = mysql_real_escape_string(htmlspecialchars($_POST['serveur']));
    		$mystring = mysql_real_escape_string(htmlspecialchars($_POST['mystring']));
    		$findme = mysql_real_escape_string(htmlspecialchars($_POST['findme']));
    		$pos = mysql_real_escape_string(htmlspecialchars($_POST['pos']));
            // Enregistrement dans la BDD des valeurs
            mysql_query("INSERT INTO inscription VALUES('', '$pseudo', '$mot_de_passe','$QuestionSecrete', '$Reponse', '$AdresseMail', '$serveur')");
     
            // Logoff mysql
            mysql_close();
        }
    	else
    	{
    	echo'Merci de remplir tout les champs, sinon votre compte ne sera pas crée';
     
    	}
    }
    	?>
     
    <form action="AccountCreator.php" method="post">
     
    <p>
    Pseudo : <input type="text" name="pseudo" /><br /><br />
    Mot de passe :  <input type="password" name="mot_de_passe" /><br /><br />
    Question secrète :  <input type="text" name="QuestionSecrete" /><br /><br />
    Réponse secrète :  <input type="text" name="Reponse" /><br /><br />
    Adresse Mail valide :  <input type="text" name="AdresseMail" /><br /><br />
    Serveur : 
    <select name="serveur">
        <option value="serveur1">Test1</option>
    	<option value="serveur2">Test2</option>
    </select>
     
    <input type="submit" value="Confirmer" />
     
    <?php
    $mystring = $AdresseMail;
    $findme   = '@';
    $pos = strpos($mystring, $findme);
     
    // Notez l'utilisation de ===.  Un simple == ne donnerait pas le résultat escompté
    // car la lettre 'a' est à la position 0 (la première).
    if ($pos === false) {
        echo "Veuillez entrer une adresse e-mail valide.";
    }?>
    </p>
     
     
     
    </form>
     
       </body>
    </html>
    <?php // ALTER TABLE nomDeLaTable AUTO_INCREMENT=0 ?>
    Le problème est que j'ai l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Notice: Undefined variable: AdresseMail in C:\Program Files\EasyPHP 2.0b1\www\Spirit\AccountCreator.php on line 59
    Veuillez entrer une adresse e-mail valide.
    Pourtant j'ai défini la variable O_o...
    (je sais que je l'ai sécurisé et que dans ce cas c'est inutile mais bon^^).

    Si vous pouviez m'aider, merci.

    EDIT :

    Re, j'ai fais autrement et ça fonctionne =D

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Spirit</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
       </head>
       <body>
     
    <?php
     
    function VerifierAdresseMail($adresse)
    {
       $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
       if(preg_match($Syntaxe,$adresse))
          return true;
       else
         return false;
    }
     
     
    if (isset($_POST['pseudo']) AND isset($_POST['mot_de_passe']) AND isset($_POST['QuestionSecrete']) AND isset($_POST['Reponse']) AND isset($_POST['serveur'])) // Si les variables existent
    {
     
     $adresse=htmlentities($_POST['AdresseMail']);
    if(VerifierAdresseMail($adresse))
      echo 'Votre adresse est valide.';
    else{
      echo 'Votre adresse e-mail n\'est pas valide.';
      exit;	
      }
     
        if ($_POST['pseudo'] != NULL AND $_POST['mot_de_passe'] != NULL AND $_POST['QuestionSecrete'] != NULL AND $_POST['Reponse'] != NULL AND $_POST['AdresseMail'] != NULL AND $_POST['serveur'] != NULL)  // Si on a quelque chose à enregistrer
        {
            //Connection à Mysql
            mysql_connect("localhost", "root", "");
            mysql_select_db("inscription");
            //Sécurité
            $mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
            $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
    		$QuestionSecrete = mysql_real_escape_string(htmlspecialchars($_POST['QuestionSecrete']));
    		$Reponse = mysql_real_escape_string(htmlspecialchars($_POST['Reponse']));
    		$AdresseMail = mysql_real_escape_string(htmlspecialchars($_POST['AdresseMail']));
    		$serveur = mysql_real_escape_string(htmlspecialchars($_POST['serveur']));
            // Enregistrement dans la BDD des valeurs
            mysql_query("INSERT INTO inscription VALUES('', '$pseudo', '$mot_de_passe','$QuestionSecrete', '$Reponse', '$AdresseMail', '$serveur')");
     
            // Logoff mysql
            mysql_close();
        }
    	else
    	{
    	echo'Merci de remplir tout les champs, sinon votre compte ne sera pas crée';
     
    	}
    }
    	?>
     
    <form action="AccountCreatorTest.php" method="post">
     
    <p>
    Pseudo : <input type="text" name="pseudo" /><br /><br />
    Mot de passe :  <input type="password" name="mot_de_passe" /><br /><br />
    Question secrète :  <input type="text" name="QuestionSecrete" /><br /><br />
    Réponse secrète :  <input type="text" name="Reponse" /><br /><br />
    Adresse Mail valide :  <input type="text" name="AdresseMail" /><br /><br />
    Serveur : 
    <select name="serveur">
        <option value="serveur1">Test1</option>
    	<option value="serveur2">Test2</option>
    </select>
     
    <input type="submit" value="Confirmer" />
     
    </p>
     
     
     
    </form>
     
       </body>
    </html>

  4. #4
    Membre régulier Avatar de Grepsd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2008
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2008
    Messages : 96
    Points : 119
    Points
    119
    Par défaut
    Bonjour,

    Tu n'as définis l'adresse mail que dans le cas où les paramètres en POST sont passés, si jamais arrive sur la page sans avoir envoyés ces paramètres, tu te retrouve avec une variable $adresseMail non définie.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Ok merci, j'ai fais autrement =p

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Spirit</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
           <link rel="stylesheet" media="screen" type="text/css" title="Design" href="design.css" />
       </head>
       <body>
     
    <?php
     
    function VerifierAdresseMail($adresse)
    {
       $Syntaxe='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#';
       if(preg_match($Syntaxe,$adresse))
          return true;
       else
         return false;
    }
     
     
    if (isset($_POST['pseudo']) AND isset($_POST['mot_de_passe']) AND isset($_POST['QuestionSecrete']) AND isset($_POST['Reponse']) AND isset($_POST['serveur'])) // Si les variables existent
    {
     
     $adresse=htmlentities($_POST['AdresseMail']);
    if(VerifierAdresseMail($adresse))
      echo 'Votre adresse est valide.';
    else{
      echo 'Votre adresse e-mail n\'est pas valide.';
      exit;	
      }
     
        if ($_POST['pseudo'] != NULL AND $_POST['mot_de_passe'] != NULL AND $_POST['QuestionSecrete'] != NULL AND $_POST['Reponse'] != NULL AND $_POST['AdresseMail'] != NULL AND $_POST['serveur'] != NULL)  // Si on a quelque chose à enregistrer
        {
            //Connection à Mysql
            mysql_connect("localhost", "root", "");
            mysql_select_db("inscription");
            //Sécurité
            $mot_de_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_de_passe']));
            $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
    		$QuestionSecrete = mysql_real_escape_string(htmlspecialchars($_POST['QuestionSecrete']));
    		$Reponse = mysql_real_escape_string(htmlspecialchars($_POST['Reponse']));
    		$AdresseMail = mysql_real_escape_string(htmlspecialchars($_POST['AdresseMail']));
    		$serveur = mysql_real_escape_string(htmlspecialchars($_POST['serveur']));
            // Enregistrement dans la BDD des valeurs
            mysql_query("INSERT INTO inscription VALUES('', '$pseudo', '$mot_de_passe','$QuestionSecrete', '$Reponse', '$AdresseMail', '$serveur')");
     
            // Logoff mysql
            mysql_close();
        }
    	else
    	{
    	echo'Merci de remplir tout les champs, sinon votre compte ne sera pas crée';
     
    	}
    }
    	?>
     
    <form action="AccountCreatorTest.php" method="post">
     
    <p>
    Pseudo : <input type="text" name="pseudo" /><br /><br />
    Mot de passe :  <input type="password" name="mot_de_passe" /><br /><br />
    Question secrète :  <input type="text" name="QuestionSecrete" /><br /><br />
    Réponse secrète :  <input type="text" name="Reponse" /><br /><br />
    Adresse Mail valide :  <input type="text" name="AdresseMail" /><br /><br />
    Serveur : 
    <select name="serveur">
        <option value="serveur1">Test1</option>
    	<option value="serveur2">Test2</option>
    </select>
     
    <input type="submit" value="Confirmer" />
     
    </p>
     
     
     
    </form>
     
       </body>
    </html>
    <?php // ALTER TABLE nomDeLaTable AUTO_INCREMENT=0 ?>
    ça a l'air d'être bon :p

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 20/10/2014, 04h28
  2. Effectuer un calcul sur un champ qui doit être filtrer
    Par lavoiej dans le forum Formules
    Réponses: 0
    Dernier message: 15/04/2010, 11h13
  3. liste déroulante qui doit pointe vers 2 champ différent
    Par popofpopof dans le forum Access
    Réponses: 1
    Dernier message: 24/08/2007, 22h36
  4. Que doit contenir un dossier de programmation ?
    Par b30ff dans le forum Débats sur le développement - Le Best Of
    Réponses: 11
    Dernier message: 26/06/2004, 19h09
  5. Ne pas afficher un champs qui est vide dans ma BD
    Par yoda_style dans le forum ASP
    Réponses: 3
    Dernier message: 27/04/2004, 11h40

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