Partage
  • Partager sur Facebook
  • Partager sur Twitter

Incompréhension au niveau des variable de sessions

    21 mars 2019 à 20:10:40

    Bonjour à tous, actuellement étudiant en ingénierie informatique, on commence tout doucement le PHP, mais notre prof nous laisse vraiment essayer jusqu'au bout avant de nous expliquer (pas plus mal).

    Là je dois rendre un TP, mais je pense ne pas très bien avoir cerné le concept de variable de sessions, car j'obtiens cette erreur, lors de l'ajout d'un nouvel utilisateur. (Le site est censé offrir la possibilité à un enseignant de se connecter, d'accéder à son espace admin, et ensuite de pouvoir ajouter, modifier ou supprimer un élève).

    Voici mon code:

    <?php
    
    if(isset($_GET['func'])){
        $_GET['func']();
    }
    
    function connectDB(){
        try{
            $conn = new PDO("mysql:host=localhost; dbname=test", "testUser","testPassword");
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            echo "Database Connexion Success<br>";
        }
        catch(PDOException $e){
            echo "Nope, pas marché..." .$e->getMessage();
            $conn =null;
        }
        return $conn;
    }
    
    function reloadPage($link){
        header("Location: $link");
    }
    
    function addUser(){
        $insert = connectDB()->prepare('INSERT INTO usuarios(login,password,mail,nom,prenom) VALUES(:login,:password,:mail,:nom,:prenom)');
        if ($_POST['user_password'] === $_POST['confirm_password']) {
            $insert->execute(array(':login' => $_POST['user_login'], ':password' => password_hash($_POST['user_password'], PASSWORD_DEFAULT), ':mail' => $_POST['user_mail'], ':nom' => $_POST['user_firstname'], ':prenom' => $_POST['user_name']));
            reloadPage("index.php");
        }
        else {
            reloadPage("view-newuser.php?pass=error");
        }
    
        $insert = null;
        $conn = null;
    }
    
    function getUserData(){
        $login = $_POST['user_login'];
        $insert = connectDB()->prepare( "SELECT login,password FROM usuarios WHERE login='$login'");
        $insert->execute();
        $userdata = $insert-> fetch();
        return $userdata;
    }
    
    function loginUser(){
                $userdata=getUserData();              // Récupère les données de l'utilisateur qui nous intéresse
                if(password_verify($_POST['user_password'],$userdata['password'])){
                    echo "Connexion réussie";
                    session_start();
                    $_SESSION['login'] = $_POST['user_login'];
                    $_SESSION['pwd'] = $_POST['user_password'];
                    $_SESSION['id'] = $userdata['id'];
                    reloadPage("view-admin.php?connexion=ok");
                }
                else{
                    echo "Connexion échouée";
                }
    }
    
    function addStudent(){
        session_start();
        $insert = connectDB()->prepare('INSERT INTO etudiants(usuario_id,nom,prenom,note) VALUES(:usuario_id,:nom,:prenom,:note)');
        if($insert->execute(array(':usuario_id' => $_SESSION['id'], ':nom' => $_POST['user_firstname'], ':prenom' => $_POST['user_name'], ':note' => $_POST['user_mark']))){
            reloadPage("view-admin.php");
        }
        else {
            reloadPage("view-newetudiant.php?addstudent=error");
        }
    
        $insert = null;
        $conn = null;
    }
    
    function deleteStudent(){
        $delete = connectDB()->prepare('DELETE from etudiants WHERE nom=""');
    }


    et voici le résultat lorsque je clique sur ajouter un étudiant:

    MMerci d'avance pour l'aide apportée :)

    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2019 à 13:44:26

      Salut

      Ton soucis viens d'ici je pense 

      function addStudent(){
          session_start();
          $insert = connectDB()->prepare('INSERT INTO etudiants(usuario_id,nom,prenom,note) VALUES(:usuario_id,:nom,:prenom,:note)');
          if($insert->execute(array(':usuario_id' => $_SESSION['id'], ':nom' => $_POST['user_firstname'], ':prenom' => $_POST['user_name'], ':note' => $_POST['user_mark']))){
              reloadPage("view-admin.php");
          }
          else {
              reloadPage("view-newetudiant.php?addstudent=error");
          }
       
          $insert = null;
          $conn = null;
      }
      $insert->execute(array(':usuario_id' => $_SESSION['id']

      D'ou sort ton $_SESSION['id'] ? Je suppose que usuario_id et l'id de ta table ? si oui tu a mis la génération de l'id de ta table en "autoincrement" ?  

      • Partager sur Facebook
      • Partager sur Twitter

      Incompréhension au niveau des variable de sessions

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown