Notice et fatal error

Résolu
JeunLoup Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -  
JeunLoup Messages postés 6 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

4 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
JeunLoup Messages postés 6 Date d'inscription   Statut Membre Dernière intervention  
 
sorry je le ferai. merci

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