Probleme de connection
Résolu
Imelda24
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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
- Probleme de connection - Guide
- Lsc smart connect problème de connexion - Forum Accessoires & objets connectés
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.