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

PHP & Base de données Discussion :

Vérification si user existe déjà [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut Vérification si user existe déjà
    Bonjour a tous !

    Volilà je voudrais vérifier à l'enregistrement si le login rentré est déjà enregistré dans ma base avant de permettre l'enregistrement.

    Voici le code utilisé :
    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
     
    // ------ AJOUT D'UN UTILISATEUR --------
    if(isset($_POST['login'])){ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)
        if(($_POST['login'] == "") || ($_POST['pass'] == "")){ // si login ou mot de passe non spécifiés >> message d'erreur
            header("Location:admin.php?erreur=empty");
        }
        else if($_POST['pass'] == $_POST['pass2']){ // on vérifie si le mot de passe et le mot de passe confirmé ont la même valeur
            // on passe toutes les variables $POST en variables
            $login = $_POST['login'];
            $pass = md5($_POST['pass']); // ici, on crypte le mot de passe à l'aide de MD5 (c'est tout simple non ? :)
            $nom = $_POST['nom'];
            $prenom = $_POST['prenom'];
            $privilege = $_POST['privilege'];
            // on fait l'INSERT dans la base de données
     
            mysql_select_db($database_dbprotect, $dbprotect);
            ///MAIS LA ON VERIFIFE D'ABORD
            $req='select count(*) as nb from utilisateurs where login="'.$login.'"';
            $dq=mysql_query($req);
            $res=mysql_fetch_array($dq);
            if(isset($res['nb'])&&!empty($res['nb'])){
            //empty detecte les valeurs a 0...
            //et la il y a deja un utilisateur connecte
            header("Location:admin.php?erreur=utilisateur_deja_existant" );
            }else{        
            $add_user = sprintf("INSERT INTO utilisateurs (login, pass, nom, prenom, privilege) VALUES ('$login', '$pass', '$nom', '$prenom', '$privilege')");
              mysql_select_db($database_dbprotect, $dbprotect);
              $result = mysql_query($add_user, $dbprotect) or die(mysql_error());
            header("Location:admin.php?add=ok"); // redirection si création réussie
        }
        else{
            header("Location:admin.php?erreur=pass"); // redirection si le pass1 est différent du pass2
        }
    }
    Mais rien ne se passe lorsque j'enregistre un même login, l'enregistrement se fait bien dans la base comme-ci de rien n'étais :-(

    Pouvez vous m'aider a trouver mon erreurs?

    D'avance merci

  2. #2
    Membre éclairé Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Par défaut
    bonjour,
    je te conseille d'utiliser elseif et d'afficher tes requêtes pour voir!
    et je crois bien que ton test devrait être

  3. #3
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut
    aaaaa ça m'énerve je suis dessus depuis ce matin et je m'en sors pas

    voici le 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
    <?php 
    // ------ AJOUT D'UN UTILISATEUR --------
        if(isset($_POST['login'])){ // on vérifie la présence des variables de formulaire (si le formulaire a été envoyé)
        if(($_POST['login'] == "") || ($_POST['pass'] == "")){ // si login ou mot de passe non spécifiés >> message d'erreur
            header("Location:admin.php?erreur=empty");
        }
        else
        {
            // on passe toutes les variables $POST en variables
            $login = $_POST['login'];
            $pass = md5($_POST['pass']); // ici, on crypte le mot de passe à l'aide de MD5
            $pass2 = md5($_POST['pass2']); // ici, on crypte le mot de passe à l'aide de MD5
            $nom = $_POST['nom'];
            $prenom = $_POST['prenom'];
            $privilege = $_POST['privilege'];
     
            if ($login && $pass && ($pass==$pass2)) {
                // Le nom existe déjà ?
                $sql="SELECT * FROM utilisateurs WHERE login='.$login.'";
                $result=mysql_query($sql);
                if ($result && mysql_num_rows($result) > 0) {
                    header("Location:admin.php?erreur=utilisateur_deja_existant");
                    return false;
                } else {
                    $sql = "INSERT INTO utilisateurs (login, pass, nom, prenom, privilege) VALUES ('$login', '$pass', '$nom', '$prenom', '$privilege')";
                    $result = mysql_query($sql);
                    if (!$result) {
                        header("Location:admin.php?erreur=".mysql_error() ."");
                        return false;
                    } else {
                        header("Location:Administration.php?add=ok");
                        return true;
                    }
                }
            } else {
                $feedback .= "ERREUR - Vous devez entrer votre nick et deux fois votre password.\n";
                return false;
            }
        }
    }
    .......
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "pass")) { // Affiche l'erreur  ?>
        <span class="erreur">Veuillez entrer deux fois votre mot de passe SVP</span>
        <?php } ?>
        <?php if(isset($_GET['add']) && ($_GET['add'] == "ok")) { // Affiche l'erreur ?>
        <span class="result_stats">L'utilisateur a &eacute;t&eacute; cr&eacute;&eacute; avec succ&egrave;s !</span>
        <?php } ?>
        <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "empty")) { // Affiche l'erreur  ?>
        <span class="erreur">Veuillez renseigner le login, le mot de passe et le privilège SVP</span>
        <?php } ?>
        <?php if(isset($_GET['erreur']) && ($_GET['erreur'] == "utilisateur_deja_existant")) { // Affiche l'erreur  ?>
        <span class="erreur">Cet Utilisateur existe déjà</span>
        <?php } ?>
    erreur retournée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error in c:\program files\easyphp1-8\www\ci  secu\admin.php on line 42
    SVP de l'aide merci

  4. #4
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    manque sûrement un ; quelque part, jette un coup d'oeil du côté de la ligne 42 et précédentes
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut
    nan je vois rien

    La ligne 42 est : "header("Location:Administration.php?add=ok");"

  6. #6
    Expert confirmé
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par défaut
    Citation Envoyé par xender
    nan je vois rien

    La ligne 42 est : "header("Location:Administration.php?add=ok");"
    j'ai dit ligne 42 et précédentes
    Rédacteur "éclectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les Règles du Forum - Mon Site Web sur DVP.com (Développement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne répondrai à aucune question technique via MP, MSN ou Skype : les Forums sont là pour ça !!! Merci de me demander avant de m'ajouter à vos contacts sinon je bloque !
    pensez à la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  7. #7
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    Le mélange de PHP et de HTML rend le code illisible et trop difficile à débugger.

  8. #8
    Membre actif Avatar de xender
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 93
    Par défaut
    l'erreur est dans le code php je pense car la deuxième portion de code marche nikel

    j'ai un peu modifié le code en changeant ça :

    $sql=sprintf("SELECT * FROM utilisateurs WHERE login='.$login.'");
    et
    $sql = sprintf("INSERT INTO utilisateurs (login, pass, nom, prenom, privilege) VALUES ('$login', '$pass', '$nom', '$prenom', '$privilege')");

    Maintenant l'utilisateur est créé alors que le login existe déjà

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

Discussions similaires

  1. Vérification de l'existence d'une fonction
    Par seub17 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 23/10/2006, 08h57
  2. [MySQL] Vérification de l'existance d'un Pseudo
    Par Nadd dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/03/2006, 21h25
  3. Vérification de l'existance d'un fichier via HTTP
    Par mouste79 dans le forum Général JavaScript
    Réponses: 18
    Dernier message: 02/02/2006, 14h26
  4. Vérification de l'existence d'un lien / url (link checker)
    Par strek100 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/10/2005, 07h34
  5. Vérification de l'existence d'un fichier
    Par alfu dans le forum ASP
    Réponses: 2
    Dernier message: 06/10/2004, 13h29

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