Créer un compte
Connexion

Vérification E-mail en PHP

Pour créer et répondre aux sujets, vous devez être connecté.
Ce sujet est résolu.
Pages: 1
Auteur Message
Aglzime
03/07/2010 à 14:17:37
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Bonjour,
Voilà celà fait un bon moment que je cherche comment vérifier un champ Email si il contien un "@"et "." derrière @!
Après des recherche sur la toile j'ai tombé sur un bout de code mais je ne sais pas comment l'inclure dans ma page d'inscription Le voici:                if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-].[a-z]$#", $_POST['email'])) {
                      $erreur = 'Votre email n\'est pas valide';
                }
et le code de la page "inscription.php":
<?php
if (isset($_POST['login']) && $_POST['email'] == 'Inscription') {
        if ((isset($_POST['login']) && (isset($_POST['login']) && !empty($_POST['email'])) && !empty($_POST['email'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
                if ($_POST['pass'] != $_POST['pass_confirm']) {
                        $erreur = '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Les 2 mots de passe sont différents.';
                }
               
                else {
                        $base = mysql_connect ('****', '****', '***');
                        mysql_select_db ('membre', $base);

                        $sql = 'SELECT id FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
                        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
                        $nb = mysql_num_rows($req);
                       

                        if ($nb == 0) {
                                $sql = 'INSERT INTO membre VALUES("", "'.mysql_real_escape_string($_POST['login']).'", "'.mysql_real_escape_string($_POST['email']).'", NOW(), "'.mysql_real_escape_string($_POST['ip']).'", "'.mysql_escape_string($_POST['pass']).'")';
                                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                                // on récupère l'id de notre nouveau membre
                                $id = mysql_insert_id();

                                session_start();
                                $_SESSION['login'] = $_POST['login'];

                                // on stocke cet id dans une variable de session
                                $_SESSION['id'] = $id;
                                header('Location: membre.php');
                                exit();
                        }
                        else {
                                $erreur = '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Un membre possède déjà ce login.</font>';
                        }
                }
        }
        else {
                $erreur = '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Au moins un des champs est vide.</font>';
        }
}
?>

Sachant que le formulaire contient 4 champs:
  • login
  • email
  • password
  • confirmation password

Merci d'avance!! ;)

ybouane
03/07/2010 à 18:04:29
ybouane
Admin
Bonjour,
pourtant c'est juste une simple condition if.
Si l'email est valide, tu met la suite de ton code à l'intérieur des accolades.
Sinon, tu met la variable $erreur. c'est tout.
Donc tu doit simplement faire quelque chose du genre:
if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-].[a-z]$#", $_POST['email']))
{
//Si l'email est bon, tu continue avec les autres vérifications, mot de passe, pseudo...
}
else
{
$erreur = 'Votre email n\'est pas valide';
}
Cordialement

Image
Aglzime
04/07/2010 à 21:01:24
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Bonjour,
Justement je ne sais pas où l'inclure dans le code de ma page
Merci d'avance

Spitfire 95
04/07/2010 à 21:09:47
Spitfire 95
Membre
Si tu as :
<form action="action.php" method="POST">
Tu dois le mettre dans action.php, je crois. Dans ce cas, n'oublis pas le lien pour ervenir en arrière en cas d'erreur.

Aglzime
05/07/2010 à 11:07:17
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Merci Spitfire 95,
Je sais que c'est dans la partie PHP , mais je ne sais pas ou le mettre dans mon code php!
et en fait ma page "inscription.php" contient le formulaire et le code PHP! ça veut dire j'ai le code PHP en haut de ma page avant le <html> et en bas après le <html><head>... jai le foemulaire <form action="inscription.php" method="post">...!

Spitfire 95
05-07-2010 à 17:00:10
Spitfire 95
Membre
Essaie ça :
<?
if (isset($_POST['login']) && $_POST['email'] == 'Inscription') {
        if ((isset($_POST['login']) && (isset($_POST['login']) && !empty($_POST['email'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
                $erreur=''
                if ($_POST['pass'] != $_POST['pass_confirm']) {
                        $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Les 2 mots de passe sont différents.';
                }
                if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$'$_POST['email'])){
                    $erreur .= "La syntaxe de votre adresse e-mail n'est pas correcte.";
                }
                else {
                        $base = mysql_connect ('****', '****', '***');
                        mysql_select_db ('membre', $base);

                        $sql = 'SELECT id FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
                        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
                        $nb = mysql_num_rows($req);
                       

                        if ($nb == 0) {
                                $sql = 'INSERT INTO membre VALUES("", "'.mysql_real_escape_string($_POST['login']).'", "'.mysql_real_escape_string($_POST['email']).'", NOW(), "'.mysql_real_escape_string($_POST['ip']).'", "'.mysql_escape_string($_POST['pass']).'")';
                                mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

                                // on récupère l'id de notre nouveau membre
                                $id = mysql_insert_id();

                                session_start();
                                $_SESSION['login'] = $_POST['login'];

                                // on stocke cet id dans une variable de session
                                $_SESSION['id'] = $id;
                                header('Location: membre.php');
                                exit();
                        }
                        else {
                                $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Un membre possède déjà ce login.</font>';
                        }
                }
        }
        else {
                $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Au moins un des champs est vide.</font>';
        }
}
?>
$erreur = " " au départ du script. Ensuite, pour chaque erreur rencontrée, $erreur .= "Texte de l'erreur" permet d'ajouter à la variable $erreur les explications des erreurs.

ybouane
05/07/2010 à 19:06:30
ybouane
Admin
Bonjour,
essaye ce code, car il ne faut pas envoyer le formulaire si les deux mots de passe ne sont pas identiques:
<?php
if(isset($_POST['login']) && $_POST['email'] == 'Inscription')
{
        if ((isset($_POST['login']) && (isset($_POST['login']) && !empty($_POST['email'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm'])))
        {
                $erreur='';
                if ($_POST['pass'] != $_POST['pass_confirm'])
                {
                $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Les 2 mots de passe sont différents.';
                }
                else
                {
                        if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$'$_POST['email']))
                        {
                                $erreur .= "La syntaxe de votre adresse e-mail n'est pas correcte.";
                        }
                        else
                        {
                                $base = mysql_connect ('****', '****', '***');
                                mysql_select_db ('membre', $base);
                               
                                $sql = 'SELECT id FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
                                $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
                                $nb = mysql_num_rows($req);
                               
                               
                                if ($nb == 0)
                                {
                                        $sql = 'INSERT INTO membre VALUES("", "'.mysql_real_escape_string($_POST['login']).'", "'.mysql_real_escape_string($_POST['email']).'", NOW(), "'.mysql_real_escape_string($_POST['ip']).'", "'.mysql_escape_string($_POST['pass']).'")';
                                        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
                                       
                                        // on récupère l'id de notre nouveau membre
                                        $id = mysql_insert_id();
                                       
                                        session_start();
                                        $_SESSION['login'] = $_POST['login'];
                                       
                                        // on stocke cet id dans une variable de session
                                        $_SESSION['id'] = $id;
                                        header('Location: membre.php');
                                        exit();
                                }
                                else
                                {
                                        $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Un membre possède déjà ce login.</font>';
                                }
                        }
                }
        }
        else
        {
                $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Au moins un des champs est vide.</font>';
        }
}
?>

Cordialement

Image
Aglzime
05/07/2010 à 20:01:59
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Bonjour,
J'obtien un message d'erreur :
"Parse error: syntax error, unexpected '{' in /mnt/136/sdd/f/e/monsite/membres/inscription.php on line 5"

cordialement

Spitfire 95
05/07/2010 à 20:16:25
Spitfire 95
Membre
Il manquait une parenthèse fermante à la fin de la ligne 4.
Essaie ceci :
<?php
if(isset($_POST['login']) && $_POST['email'] == 'Inscription')
{
        if ((isset($_POST['login']) && (isset($_POST['login']) && !empty($_POST['email'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))))
        {
                $erreur='';
                if ($_POST['pass'] != $_POST['pass_confirm'])
                {
                $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Les 2 mots de passe sont différents.';
                }
                else
                {
                        if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$'$_POST['email']))
                        {
                                $erreur .= "La syntaxe de votre adresse e-mail n'est pas correcte.";
                        }
                        else
                        {
                                $base = mysql_connect ('****', '****', '***');
                                mysql_select_db ('membre', $base);
                               
                                $sql = 'SELECT id FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
                                $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
                                $nb = mysql_num_rows($req);
                               
                               
                                if ($nb == 0)
                                {
                                        $sql = 'INSERT INTO membre VALUES("", "'.mysql_real_escape_string($_POST['login']).'", "'.mysql_real_escape_string($_POST['email']).'", NOW(), "'.mysql_real_escape_string($_POST['ip']).'", "'.mysql_escape_string($_POST['pass']).'")';
                                        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
                                       
                                        // on récupère l'id de notre nouveau membre
                                        $id = mysql_insert_id();
                                       
                                        session_start();
                                        $_SESSION['login'] = $_POST['login'];
                                       
                                        // on stocke cet id dans une variable de session
                                        $_SESSION['id'] = $id;
                                        header('Location: membre.php');
                                        exit();
                                }
                                else
                                {
                                        $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Un membre possède déjà ce login.</font>';
                                }
                        }
                }
        }
        else
        {
                $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Au moins un des champs est vide.</font>';
        }
}
?>


Aglzime
07/07/2010 à 16:41:22
Celui qui sacrifie sa liberté pour sa sécurité, ne mérite aucune des deux ! Aglzime
Membre
Toujour rien !
Une erreur à la ligne 13
Parse error: syntax error, unexpected T_VARIABLE in /mnt/136/sdd/f/e/monsite/utilisateurs/inscription.php on line 13


Spitfire 95
07/07/2010 à 16:54:39
Spitfire 95
Membre
Il manquait une virgule. Essaie ça :
<?php
if(isset($_POST['login']) && $_POST['email'] == 'Inscription')
{
        if ((isset($_POST['login']) && (isset($_POST['login']) && !empty($_POST['email'])) && (isset($_POST['pass']) && !empty($_POST['pass'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))))
        {
                $erreur='';
                if ($_POST['pass'] != $_POST['pass_confirm'])
                {
                $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Les 2 mots de passe sont différents.';
                }
                else
                {
                        if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.'@'.'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',$_POST['email']))
                        {
                                $erreur .= "La syntaxe de votre adresse e-mail n'est pas correcte.";
                        }
                        else
                        {
                                $base = mysql_connect ('****', '****', '***');
                                mysql_select_db ('membre', $base);
                               
                                $sql = 'SELECT id FROM membre WHERE login="'.mysql_real_escape_string($_POST['login']).'"';
                                $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
                                $nb = mysql_num_rows($req);
                               
                               
                                if ($nb == 0)
                                {
                                        $sql = 'INSERT INTO membre VALUES("", "'.mysql_real_escape_string($_POST['login']).'", "'.mysql_real_escape_string($_POST['email']).'", NOW(), "'.mysql_real_escape_string($_POST['ip']).'", "'.mysql_escape_string($_POST['pass']).'")';
                                        mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
                                       
                                        // on récupère l'id de notre nouveau membre
                                        $id = mysql_insert_id();
                                       
                                        session_start();
                                        $_SESSION['login'] = $_POST['login'];
                                       
                                        // on stocke cet id dans une variable de session
                                        $_SESSION['id'] = $id;
                                        header('Location: membre.php');
                                        exit();
                                }
                                else
                                {
                                        $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Un membre possède déjà ce login.</font>';
                                }
                        }
                }
        }
        else
        {
                $erreur .= '<font color="marron" size="3><b>Erreur</b></font><font color="red" size="3">Au moins un des champs est vide.</font>';
        }
}
?>


Pages: 1