Probleme de connection
Résolu
Imelda24
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
g un probleme avec ma page de connection :
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
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:
- Probleme de connection
- Gmail connection - Guide
- Facebook connection - Guide
- Connection chromecast - Guide
- Connection privée - Guide
- Cocoland connection - Accueil - Réseaux sociaux
3 réponses
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 :
Au passage .... je suis assez étonné ..... Le password n'est pas encodé ?? (à minima en SHA1 ? )
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 ? )
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.
@Fontainard j'avais pas besoin d'un autre fichier pour le code php.
Merci pour votre aide.
Cordialement Imelda
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
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.
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.