Comment récupérer une valeur dans une table de BDD

Bonjour,

Je souhaite récupérer la valeur d'un champ (qui correspond à un utilisateur en cours) dans une table de base de donnée pour en suite comparer cette à une autre.

Comment je fais pour faire ça.

3 réponses

  1. Voici un bout de mon code

    function logged_only2(){
        if(session_status() == PHP_SESSION_NONE){
            session_start();
        }
        require_once 'inc/db.php';
        $req = $pdo->prepare('SELECT * FROM users WHERE id =.......');
        $req->execute(.....);
        $user = $req->fetch();
    
    
        if ($user->subscribed =='1') {
            $_SESSION['auth'] = $user;
            $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
            header("Location: Page2.php");
            exit();
            }
    }
    


    Le but c'est que une fois que l'utilisateur est logué sans qu'il ai à faire quoi ce ce soit d'autre, je puisse le garder sur la page qu'il se trouve ou que je puisse le rediriger vers une autre page s'il n'a pas dans la base de donnée les conditions pour y rester.

    Pour cela j'aurai besoin de récupérer l'id de l'utilisateur connécté pour aller chercher dans la base de donnée, les données qui lui correspondent.

    Qu'est-ce que je mets à WERE id ?
    Et qu'est-ce que je mets à execute() ?
    0
    1. Contributeur
      bonjour, il me semble que tu ne nous montres qu'une partie de ton code, et que tu n'expliques pas ce que fait le reste..
      0
  2. En faite c'est juste une fonction que je vais inclure dans une php.
    Et chaque fois qu'un utilisateur demandera cette page.

    La fonction ira vérifier dans la base de donnée si subscribed=1
    SI oui alors l'utilisateur sera redirigé vers la page Page2.php

    Si subscribed est différent de 1 alors, l'utilisateur ne sera pas redirigé.
    0
    1. Contributeur
      comment l'utilisateur est-il connu?
      0
    2. Justement c'est ce que je cherche à savoir.

      car je souhaite récupérer l'utilisateur par la session.

      function logged_only2(){
          if(session_status() == 1){
              session_start();
          }
          require_once 'inc/db.php';
          $id_user = $_SESSION['id'];
          $req = $pdo->prepare('SELECT * FROM users WHERE id = :id');
          $req->execute(array( ':id'=> $_SESSION['id']));
          $user = $req->fetch();
      
      
          if ($user->subscribed =='1') {
              $_SESSION['auth'] = $user;
              $_SESSION['flash']['success'] = 'Vous êtes maintenant connecté';
              header("Location: Page2.php");
              exit();
              }
      }
      


      Je viens d'écrire ce bout de code là.

      Comment je défini la variable $id et où est-ce que je la défini ?
      0
    3. Contributeur
      @devdeb22il y a en général trois méthodes à prévoir:
      - une page d'enregistrement d'un nouvel utilisateur (création d'un enregistrement dans la base de données)
      - une page d'identification d'un utilisateur existant (vérification de l'identité er du mot de passe dans la base de données), qui mémorise (dans la variable session) l'identité de l'utilisateur
      - vérification, dans toutes les pages, que l'utilisateur est bien identifié (en vérifiant la variable session, pas utile d'accéder à nouveau la base de données)

      je crois deviner que tu veux faire la vérification, et j'ai l'impression que tu n'as pas encore pensé aux deux autres méthodes.
      0