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 un pseudo existe déjà


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Par défaut Vérification si un pseudo existe déjà
    Bonjour,

    Je voudrais permettre à mes membres de changer de pseudo mais en vérifiant que celui-ci n'existe pas encore dans la base de données.

    Don, j'ai un formulaire où le membre introduit son nouveau pseudo, de là on vérifie si ce nouveau pseudo existe déjà.
    Si oui, un message d'erreur apparait pour proposer au membre d'en choisir un autre.
    Si non, je fais un UPDATE dans la BDD pour changer le pseudo.

    Voici ce que j'ai actuellement.
    Mais 1/ au premier test le pseudo était bien changé mais possibilité d'en avoir un qui existe déjà.
    2/ le message d'erreur ne s'affiche pas.

    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
     
    <?php
    if ( !defined( 'SMARTY_DIR' ) ) {
        include_once( 'init.php' );
    }
     
    include( 'sessioninc.php' );
     
     
    $user = $db->getRow('select username from ! where id = ?', array( USER_TABLE, $_SESSION['UserId']) );
     
    $username = $user['username'];
     
    $change = $_POST['txtusername'];
     
    $t->assign('lang',$lang);
     
    $t->assign('username',$username);
     
    $t->assign( 'rendered_page', $t->fetch( 'changepseudo.tpl' ) );
     
    $t->display('index.tpl');
     
    // vérification si pseudo existe déjà
    $query = mysql_query("SELECT COUNT(*) AS nbr FROM gaydate_user WHERE username = '".$change."' ");
    $result = mysql_fetch_array($query);
    if($result['nbr'] == 0)
    {
     $sqlchange = "UPDATE ! SET username='$change' WHERE id = ?"; 
     $db->query( $sqlchange, array( USER_TABLE, $_SESSION['UserId'] ) );
     header ('location: changepseudo.php?msg='.CHANGE_OK );
    }else{
     header ('location: changepseudo.php?msg='.CHANGE_NO );
    }
     
    ?>
    J'ai essayé un header pour le message d'erreur mais si il y a moyen d'avoir une alert c'est encore mieux.

    Merci pour votre aide.

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2008
    Messages : 84
    Par défaut
    Salut,
    Vous pouvez essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $query = mysql_query("SELECT FROM  gaydate_user WHERE username = '$change' ");
    $result = mysql_fetch_array($query);
    $nbr = count($result['username ']);
    if($nbr == 0)
    {
     $sqlchange = "UPDATE ! SET username='$change' WHERE id = ?"; 
     $db->query( $sqlchange, array( USER_TABLE, $_SESSION['UserId'] ) );
     header ('location: changepseudo.php?msg='.CHANGE_OK );
    }else{
     header ('location: changepseudo.php?msg='.CHANGE_NO );
    }
    Cordialement

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Par défaut
    Non c'est pas ça,
    toujours pas de changement de pseudo ni de message d'erreur indiquant si oui ou non le pseudo est libre et par conséquent si il a été bien changé.

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2008
    Messages : 84
    Par défaut
    Normalement c un problème de requêtes, Essayez de refaire vos requêtes normalement pas avec ! et ? .

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Par défaut
    Je vais poser ma question autrement.

    Comment vérifier qu'un pseudo est disponible ?

    Car avant d'avoir posé la condition, la requête fonctionnait.

  6. #6
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    Citation Envoyé par david2511 Voir le message
    Bonjour,

    Je voudrais permettre à mes membres de changer de pseudo mais en vérifiant que celui-ci n'existe pas encore dans la base de données.

    Don, j'ai un formulaire où le membre introduit son nouveau pseudo, de là on vérifie si ce nouveau pseudo existe déjà.
    Si oui, un message d'erreur apparait pour proposer au membre d'en choisir un autre.
    Si non, je fais un UPDATE dans la BDD pour changer le pseudo.

    Voici ce que j'ai actuellement.
    Mais 1/ au premier test le pseudo était bien changé mais possibilité d'en avoir un qui existe déjà.
    2/ le message d'erreur ne s'affiche pas.

    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
     
    <?php
    if ( !defined( 'SMARTY_DIR' ) ) {
        include_once( 'init.php' );
    }
     
    include( 'sessioninc.php' );
     
     
    $user = $db->getRow('select username from ! where id = ?', array( USER_TABLE, $_SESSION['UserId']) );
     
    $username = $user['username'];
     
    $change = $_POST['txtusername'];
     
    $t->assign('lang',$lang);
     
    $t->assign('username',$username);
     
    $t->assign( 'rendered_page', $t->fetch( 'changepseudo.tpl' ) );
     
    $t->display('index.tpl');
     
    // vérification si pseudo existe déjà
    $query = mysql_query("SELECT COUNT(*) AS nbr FROM gaydate_user WHERE username = '".$change."' ");
    $result = mysql_fetch_array($query);
    if($result['nbr'] == 0)
    {
     $sqlchange = "UPDATE ! SET username='$change' WHERE id = ?"; 
     $db->query( $sqlchange, array( USER_TABLE, $_SESSION['UserId'] ) );
     header ('location: changepseudo.php?msg='.CHANGE_OK );
    }else{
     header ('location: changepseudo.php?msg='.CHANGE_NO );
    }
     
    ?>
    J'ai essayé un header pour le message d'erreur mais si il y a moyen d'avoir une alert c'est encore mieux.

    Merci pour votre aide.
    en essayant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $query = mysql_query("SELECT COUNT(*) AS nbr FROM gaydate_user WHERE username = '".$change."' ");
    $result = mysql_fetch_array($query);
    if($result['nbr'] > 0)

  7. #7
    Membre extrêmement actif Avatar de ledisciple
    Homme Profil pro
    observateur de nuage niveau 2.3
    Inscrit en
    Août 2008
    Messages
    860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : observateur de nuage niveau 2.3

    Informations forums :
    Inscription : Août 2008
    Messages : 860
    Par défaut
    Pq tu ne fais pas une requete simple qui compare le champs de ton formulaire avec les enregistrement de ta base de donnée?

    if (variable requete == variable champs formulaire)
    { alerte javascript

    else

    enregistrement nouveau pseudo

    si ça passe tu peux continuer l'enregistrement sinon tu met une alerte javascript du genre alert

    Je ne suis qu'un débutant, mais bon j'espère que ça a pu t'aider

  8. #8
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mars 2007
    Messages : 95
    Par défaut
    genre ça ?

    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
     
    $user = $db->getRow('select username from ! where id = ?', array( USER_TABLE, $_SESSION['UserId']) );
     
    $username = $user['username'];
     
    $change = $_POST['txtusername'];
     
    $t->assign('lang',$lang);
     
    $t->assign('username',$username);
     
    $t->assign( 'rendered_page', $t->fetch( 'changepseudo.tpl' ) );
     
    $t->display('index.tpl');
     
    // vérification si pseudo existe déjà
    if ($user == $change) {
     header ('location: changepseudo.php?msg='.CHANGE_NO ); //indique le message que le pseudo est déjà pris
    }else{
     $sqlchange = "UPDATE ! SET username='$change' WHERE id = ?"; 
     $db->query( $sqlchange, array( USER_TABLE, $_SESSION['UserId'] ) );
     header ('location: changepseudo.php?msg='.CHANGE_OK ); //indique le message que le pseudo a bien été changé
    }
    Et ben non :-(

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Avril 2008
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations forums :
    Inscription : Avril 2008
    Messages : 84
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $query = mysql_query("SELECT * FROM gaydate_user WHERE username = '$change' ");
    $result = mysql_fetch_array($query);
    $nbr = count($result["username" ]);
    if($nbr != 0)
    {
    //erreur
    }
    else
    {
    //ok
    }

  10. #10
    Membre chevronné Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Par défaut
    Citation Envoyé par megacool Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $query = mysql_query("SELECT * FROM gaydate_user WHERE username = '$change' ");
    $result = mysql_fetch_array($query);
    $nbr = count($result["username" ]);
    if($nbr != 0)
    {
    //erreur
    }
    else
    {
    //ok
    }
    Je pense que c'est vraiment la bonne logique, sauf que j'utiliserai plus la fonction php:
    mysql_num_rows() à la place de mysql_fetch_array().

    Elle te permet de compter directement le nbr de résultats de ta requete.

Discussions similaires

  1. vérifier si mail et pseudo existe deja dans bdd
    Par endelium dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 20/01/2012, 11h54
  2. Réponses: 3
    Dernier message: 22/04/2011, 05h59
  3. Vérification si un index existe
    Par Mihalis dans le forum Bases de données
    Réponses: 1
    Dernier message: 11/03/2009, 09h36
  4. Vérification si un fichier existe
    Par Pratchett dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/11/2007, 15h58
  5. [MySQL] Pseudo existe déjà ?
    Par jejesochalion dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 29/08/2006, 21h52

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