Notice et fatal error

Résolu
bjr à tous je débute un peu en PHP et actu je peux plus progresser à cause d'une erreur dans mon code, j'aurais vraiment besoin d'aide svp.
le navigateur me renvoi tjr ces erreurs
"Notice: Undefined index: active in C:\wamp64\www\tests\Login.php on line 14"
"Fatal error: Call to undefined function session_register() in C:\wamp64\www\tests\Login.php on line 21"

mon code:
<?php
   include("conf.php");
   session_start();
   
   if($_SERVER["REQUEST_METHOD"] == "POST") {
      // username and password sent from form 
      
      $myusername = mysqli_real_escape_string($db,$_POST['username']);
      $mypassword= mysqli_real_escape_string($db,$_POST['password']); 
      
      $sql = "SELECT matricule FROM etudiants WHERE user_etud = '$myusername' and pwd_etud = '$mypassword'";
      $result = mysqli_query($db,$sql);
      $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
      $active = $row['active']; // ligne 14
      
      $count = mysqli_num_rows($result);
      
      // If result matched $myusername and $mypassword, table row must be 1 row
  
      if($count == 1) {
         session_register("myusername"); // ligne 21
         $_SESSION['login_user'] = $myusername;
         
         header("location: Bienvenue.php");
      }else {
         $error = "Votre nom d'utilisateur ou mot de passe incorrect";
      }
   }
?>
<!DOCTYPE html>
<html lang="fr">
   
   <head>
      <title>Gestion ordres de mission</title>
      <meta charset="utf-8">
      <link rel="stylesheet" href= "style2.css" />
      
   </head>
   
   <body bgcolor = "#FFFFFF">
   
      <div align = "center">
         <div style = "width:300px; border: solid 1px #333333; " align = "left">
            <div style = "background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div>
            
            <div style = "margin:30px">
               
               <form action = "" method = "post">
                  <label>Nom d'utilisateur  :</label><input type = "text" name = "username" class = "box"/><br /><br />
                  <label>Mot de passe  :</label><input type = "mot de passe" name = "password" class = "box" /><br/><br />
                  <input type = "submit" value = " Submit "/><br />
               </form>
               
               <div style = "font-size:11px; color:#cc0000; margin-top:10px">
               
            </div>
            
         </div>
      </div>

   </body>
</html>


EDIT : Ajout des balises de code

4 réponses

  1. Bonjour

    Ligne 11 :
    "SELECT matricule FROM ...
    .
    Ligne 14 :
    ...$row['active']...


    Si tu ne vas chercher que le champ 'matricule', ne t'attends pas à trouver un champ 'active' dans le résultat. C'est pour ça que tu as une erreur Undefined index: active
    1. Modérateur
      Surtout que le "active".. il ne l'utilise pas.
      A mon avis... il voulait le faire dans la requête directement

       $sql = "SELECT matricule,active 
      FROM etudiants 
      WHERE user_etud = '$myusername' 
         AND pwd_etud = '$mypassword'
        AND active = 1";
      
  2. sorry je le ferai. merci

    lorsque je le modifie comme vous l'avez dit, le navigateur actualise juste la page.
    comment faire? please!
    1. Modérateur
      Bonjour,

      Pour commencer.. lorsque tu postes ton code sur le forum, merci d'y mettre les balises de code.
      https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

      Ensuite, pour tes soucis :
      Si ta requête ne retourne aucun résultat.. $row est vide .. et par conséquent, $row['active'] n'existe pas.
      Il te faut donc placer cette ligne de code dans tes if.
      $result = mysqli_query($db,$sql);
            $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
           
            $count = mysqli_num_rows($result);    
            // If result matched $myusername and $mypassword, table row must be 1 row
            if($count == 1) {
                    $active = $row['active']; // ligne 14
      
      


      et supprimer la ligne
      session_register("myusername"); // ligne 21


      Pour finir, je t'invite à lire et à appliquer ceci pour tes prochains codes
      https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code