Notice et fatal error

Résolu
JeunLoup Messages postés 7 Statut Membre -  
JeunLoup Messages postés 7 Statut Membre -
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. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    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

    0
  2. JeunLoup Messages postés 7 Statut Membre
     
    sorry je le ferai. merci

    lorsque je le modifie comme vous l'avez dit, le navigateur actualise juste la page.
    comment faire? please!
    0
  3. Utilisateur anonyme
     
    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
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
       
      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";
      
      0
  4. JeunLoup Messages postés 7 Statut Membre
     
    merci à vous.
    0