Probleme de connection
Résolu
Imelda24
-
jordane45 Messages postés 30426 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30426 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
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 :<?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.<?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.