Probleme de connection

Résolu
Imelda24 -  
jordane45 Messages postés 38486 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
A voir également:

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Hello
Tu penseras à mettre la discussion en Résolue stp.
0
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour
1- Pas besoin de fichiet distinct
2- l'action et la methode sont bien presents dans son code.
0