Probleme de connection

Résolu
Imelda24 -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

g un probleme avec ma page de connection :

 <?php

    require("connect.php");
        if(isset($_POST['username'])AND isset($_POST['Motd_passe'])){


        $username=htmlspecialchars($_POST['username']);
        $Motd_passe=htmlspecialchars($_POST['Motd_passe']);
       

       
        $requete="SELECT * FROM administrateur";
        $query=sqlsrv_query($conn,$requete);
        while($donnees=sqlsrv_fetch_array($query))
        { 
          if($donnees['username']==$username && $donnees['Motd_passe']==$Motd_passe)
          {  
            session_start();
            $_SESSION['id']=$donnees['id'];
            $_SESSION['admin']=$username;
         
           header("Location:../Base/ordinateur/production/index_o.php");
           
          }
        }
       sqlsrv_close($query);
       

}

?>
   

<!DOCTYPE html>
<html lang="en">
  <head>

<body>

                      
          <div class="right_col" role="main" >
            <form method="POST" action="">

          
			<fieldset>
           <div style="margin:20%";>
              <table >
              <tr>
              <td>Login: </td>
              <td>  <input type="text" name="username" required>
              </td>
              </tr>

              <tr>
              <td> Mot de Passe: </td>
              <td><input type="password" name="Motd_passe" required></td>
              </tr>

              <tr><td>
              <button type="submit"               Value="Connection">Connection</button>
            </div>    
            

            </td></tr>
            	
             </table>
             </fieldset>
          

            </form>
         </div>

  </body>
</html>


quand je rentre l'username et le pass je reste toujours dans la meme page la redirection n'est pas faite. toute aide est la bienvenue.

Cordialement,

Imelda

3 réponses

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour

    Des erreurs dans ton code en pagaille .... des balises HTML mal fermée ou mal placée ....
    La vérification du User/password se fait DIRECTEMENT dans la BDD via un WHERE et non par un IF en PHP ....
    Bref...

    Essaye ceci :
    <?php
    // Affichage des erreurs PHP
    error_reporting(E_ALL);
    ini_set('display-errors','on');
    
    //connexion à la BDD
    require_once "connect.php";
      
      
    //récupération PROPRE des variables
    $username= !empty($_POST['username']) ? htmlspecialchars($_POST['username']) : NULL;
    $Motd_passe = !empty($_POST['Motd_passe']) ? htmlspecialchars($_POST['Motd_passe']) : NULL ;
    
    //traitement du submit
    if($username && $Motd_passe){
      $requete="SELECT * 
                FROM administrateur 
                WHERE username = '$username'
                  AND Motd_passe = '$Motd_passe';";
      $query=sqlsrv_query($conn,$requete);
      $donnees=sqlsrv_fetch_array($query);
      sqlsrv_close($query);
      if(!empty($donnees)){
          session_start();
          $_SESSION['id']=$donnees['id'];
          $_SESSION['admin']=$username;
       
         header("Location:../Base/ordinateur/production/index_o.php");
         exit(); //toujours mettre un Exit apres une redirection ...   
      } 
    }
    ?>
    <!DOCTYPE html>
    <html lang="en">
      <head>
       <title>
        Connexion
       </title>
      </head>
     <body>               
      <div class="right_col" role="main" >
        <form method="POST" action="">   
          <fieldset>
            <div style="margin:20%";>
              <table >
               <tr>
                <td>
                 Login: 
                </td>
                <td>  
                 <input type="text" name="username" required>
                </td>
              </tr>
              <tr>
               <td>
                Mot de Passe: 
               </td>
               <td>
                <input type="password" name="Motd_passe" required>
               </td>
              </tr>
              <tr>
               <td>
                <button type="submit" Value="Connection">Connection</button>
               </td>
              </tr>
             </table>
            </div>    
          </fieldset>
        </form>
      </div>
     </body>
    </html>
    


    Au passage .... je suis assez étonné ..... Le password n'est pas encodé ?? (à minima en SHA1 ? )

    0
  2. Imelda24
     
    Bonjour,

    Désolé d'avoir pris tout ce temps pour répondre,
    j'ai fait quelque petite modification dans le code et ça marche et merci j'avais complètement oublié de crypter le mot de passe.
      <?php
                      // connection à la BDD 
                     require("connect.php");
    
                     //récupération PROPRE des variables 
                 if(isset($_POST['username'])AND isset($_POST['Motd_passe'])){
                 
                       $username=htmlspecialchars($_POST['username']);
                                     $Motd_passe=sha1(htmlspecialchars($_POST['Motd_passe']));
                                
                              try{             
                              $requete="SELECT * FROM administrateur";
                              $query=sqlsrv_query($conn, $requete);
                              
                              while($donnees=sqlsrv_fetch_array($query)){ 
                                
                                if($donnees['username']===$username && $donnees['Motd_passe']===$Motd_passe){  
                                  
                                    session_start();
                                    $_SESSION['id']=$donnees['id'];
                                    $_SESSION['admin']=$username;
                                   
                      header("Location: ../../ordinateur/production/index_o.php");  
                                                        
                            }
                            
                          }
                          sqlsrv_free_stmt($query);
                          
                        }catch(Exception $e){
                          die('Erreur '.$e->getMessage());
                        }
                         
                          }
                      sqlsrv_close($query);
    
                  ?>


    @Fontainard j'avais pas besoin d'un autre fichier pour le code php.
    Merci pour votre aide.

    Cordialement Imelda
    0
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Hello
      Tu penseras à mettre la discussion en Résolue stp.
      0
  3. Fontainard Messages postés 68 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour,

    Première remarque, le traitement de tes donnés, en l’occurrence ton code php doit se faire à part de ton formulaire (sur un fichier.php distinct).

    Il te manques par ailleurs l'action du formulaire comme par exemple <form method="POST" action="traiter.php"> ou tu dois cibler le fichier avec lequel tu récupére les donnés avec ton php. bon courage.
    -2
    1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      Bonjour
      1- Pas besoin de fichiet distinct
      2- l'action et la methode sont bien presents dans son code.
      0