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 :

Ajouter un élément d'une base de données dans une variable


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 146
    Points : 74
    Points
    74
    Par défaut Ajouter un élément d'une base de données dans une variable
    Bonjour,

    J'aimerais ajouter le résultat d'une requête SQL dans une variable de session mais je ne vois pas quelle syntaxe adopter pour ça

    Voici ce que j'ai:
    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
     
    if(isset($_POST['nom']) && isset($_POST['password'])){
        // Préparation de la requête
        $reqConnect = $bdd->prepare("SELECT * FROM joueur WHERE nom=:nom AND pwd=:pwd");
        // Association des valeurs
        $reqConnect->bindValue(':nom', $_POST['nom'], PDO::PARAM_STR);
        $reqConnect->bindValue(':pwd', $_POST['password'], PDO::PARAM_STR);
        // Exécution
        $reqConnect->execute();
        // Mettre la valeur retournée par la requête dans une variable
        $nbLigne=$reqConnect->rowCount();
        // Vérifier le contenu de cette variable
        if($nbLigne==1){
            echo '<td>Rediction en cours...</td>';
            $_SESSION['joueur']='';
            header('Refresh:1.5;jeu.php');
        } else {
            //print_r($reqConnect->errorInfo());
            echo '<td>Identifiants incorrects</td>';
        }
    }
    Donc j'aimerais alimenter la variable à la ligne 15, par le résultat de 'nom' de la requête SQL

    Merci

    EDIT :
    J'ai fait quelque chose comme ça... Mais ça n'a pas l'air d'être propre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        if($nbLigne==1){ // Si la requête renvoie quelque chose, on effectue la connexion
            echo '<td>Rediction en cours...</td>';
            while ($donnees = $reqConnect->fetch()) {
                $_SESSION['joueur']=$donnees['nom'];
                $_SESSION['pwdjoueur']=$donnees['pwd'];
            }
    Il n'y a pas une meilleure méthode?

    Merci

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Déjà, le mot de passe ne devrait pas se trouver dans la session. Les seuls endroits où tu manipules le mot de passe sont l'inscription et la connexion de l'utilisateur. Une fois ton utilisateur identifié, on n'a plus besoin de son mot de passe, donc autant éviter de le promener partout.

    En dehors de ça, a priori, ton code est correct, tu n'as juste pas besoin de la boucle (vu que tu n'as qu'un seul résultat) :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if($nbLigne==1){ // Si la requête renvoie quelque chose, on effectue la connexion
        echo '<td>Rediction en cours...</td>';
        $donnees = $reqConnect->fetch();
        $_SESSION['joueur']=$donnees['nom'];
     
    }

  3. #3
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2018
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2018
    Messages : 146
    Points : 74
    Points
    74
    Par défaut
    Bonjour et merci pour cette réponse.

    Si je mettais le mot de passe dans un variable de session, c'était pour pouvoir la récupérer sur une autre page (et faire une requête sql avec, un where nom=$_SESSION['nom'] AND pwd=$_SESSION['pwd'], pour être sûr que je manipule bien le bon utilisateur dans la base) mais je devrais plutôt récupérer l'id de la personne connectée pour faire mes requêtes?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Tu n'as toujours pas compris que c'est l'id (auto-incrementé donc UNIQUE) qui sert à identifier formellement un enregistrement.

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

Discussions similaires

  1. Ajouter une image de base de donnée dans un rapport
    Par wapicris dans le forum EPM (Hyperion)
    Réponses: 0
    Dernier message: 08/07/2010, 13h13
  2. connection a une base de données dans univers Hibernate
    Par lilou77 dans le forum Hibernate
    Réponses: 10
    Dernier message: 26/10/2005, 11h48
  3. Importer la structure d'une base de donnée dans un combobox
    Par hanines dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 23/09/2005, 23h41
  4. Réponses: 7
    Dernier message: 05/01/2005, 14h43
  5. Réponses: 4
    Dernier message: 29/11/2004, 17h51

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