Hashage et sallage des MDPs (fonctionnel)

This commit is contained in:
Esteban
2026-06-08 13:04:54 +02:00
parent ad4424571d
commit b2aefe3af5
4 changed files with 23 additions and 28 deletions
-1
View File
@@ -13,5 +13,4 @@ require_once('./../elements/header.php');
<?php <?php
// Ajout du footer // Ajout du footer
require_once('../elements/footer.php'); require_once('../elements/footer.php');
?> ?>
+3 -3
View File
@@ -26,9 +26,9 @@ if (isset($_SESSION['user_id'])){
<p>Connexion</p> <p>Connexion</p>
<!-- Deux champs de texte, un "id" et un "passwd" --> <!-- Deux champs de texte, un "username" et un "password" -->
<input type="text" name="id" id="id" placeholder="Votre identifiant"> <input type="text" name="username" id="username" placeholder="Votre identifiant">
<input type="password" name="passwd" id="passwd" placeholder="Votre mot de passe"> <input type="password" name="password" id="password" placeholder="Votre mot de passe">
<!-- Bouton de connexion --> <!-- Bouton de connexion -->
<input type="submit" value="Se connecter"> <input type="submit" value="Se connecter">
+8 -5
View File
@@ -13,9 +13,9 @@ if (!isset($_SESSION["role"]) || $_SESSION["role"] != "admin") {
// Si le formulaire a été soumis // Si le formulaire a été soumis
if ($_SERVER["REQUEST_METHOD"] == "POST") { if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Récupération des données du formulaire // Récupération des données du formulaire
$user = $_POST["user"]; $user = trim($_POST["user"] ?? "");
$role = $_POST["role"]; $role = $_POST["role"] ?? "";
$passwd = $_POST["passwd"]; $passwd = $_POST["passwd"] ?? "";
// Vérification que tous les champs sont remplis // Vérification que tous les champs sont remplis
if ($user == "" || $role == "" || $passwd == "") { if ($user == "" || $role == "" || $passwd == "") {
@@ -29,7 +29,7 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
} else { } else {
try { try {
// Requête SQL pour vérifier si le nom d'utilisateur existe déjà // Requête SQL pour vérifier si le nom d'utilisateur existe déjà
$sqlVerification = "SELECT * FROM users WHERE username = :username"; $sqlVerification = "SELECT * FROM users WHERE username = :username LIMIT 1";
$requeteVerification = $dbh->prepare($sqlVerification); $requeteVerification = $dbh->prepare($sqlVerification);
$requeteVerification->execute([ $requeteVerification->execute([
":username" => $user ":username" => $user
@@ -45,12 +45,15 @@ if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Génération de la date de création // Génération de la date de création
$dateCreation = date("Y-m-d H:i:s"); $dateCreation = date("Y-m-d H:i:s");
// Hashage du mot de passe
$passwordHash = password_hash($passwd, PASSWORD_DEFAULT);
// Requête SQL d'insertion du nouvel utilisateur // Requête SQL d'insertion du nouvel utilisateur
$sqlAjout = "INSERT INTO users (username, password, role, created_at) VALUES (:username, :password, :role, :created_at)"; $sqlAjout = "INSERT INTO users (username, password, role, created_at) VALUES (:username, :password, :role, :created_at)";
$requeteAjout = $dbh->prepare($sqlAjout); $requeteAjout = $dbh->prepare($sqlAjout);
$requeteAjout->execute([ $requeteAjout->execute([
":username" => $user, ":username" => $user,
":password" => $passwd, ":password" => $passwordHash,
":role" => $role, ":role" => $role,
":created_at" => $dateCreation ":created_at" => $dateCreation
]); ]);
+5 -12
View File
@@ -14,22 +14,13 @@ if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
exit; exit;
} }
// On récupère les champs envoyé par le post et on les nettoie $username = trim($_POST['username'] ?? '');
$username = trim($_POST['id'] ?? ''); $password = $_POST['password'] ?? '';
$password = trim($_POST['passwd'] ?? '');
// Si les champs sont vides on renvoie vers Login.php : Prévoir dans le futur une erreur
if (empty($username) || empty($password)) {
header('Location: ./../pages/login.php');
exit;
}
// On regarde si l'utilisateur est dans la base de donnée sinon ça ne sert a rien de traiter
try { try {
$stmt = $dbh->prepare('SELECT id, username, password, role FROM users WHERE username = :username LIMIT 1'); $stmt = $dbh->prepare('SELECT id, username, password, role FROM users WHERE username = :username LIMIT 1');
$stmt->execute([':username' => $username]); $stmt->execute([':username' => $username]);
$user = $stmt->fetch(); $user = $stmt->fetch();
} catch (PDOException $e) { } catch (PDOException $e) {
error_log('Erreur sql dans la requête : ' . $e->getMessage()); error_log('Erreur sql dans la requête : ' . $e->getMessage());
header('Location: ./../pages/login.php'); header('Location: ./../pages/login.php');
@@ -37,7 +28,7 @@ try {
} }
// On regarde si le mdp correspond à celui en bdd // On regarde si le mdp correspond à celui en bdd
if (!$user || $user['password'] !== $password) { if (!$user || !password_verify($password, $user['password'])) {
header('Location: ./../pages/login.php'); header('Location: ./../pages/login.php');
exit; exit;
} }
@@ -57,3 +48,5 @@ try {
//Redirection vers home.php puisque que l'utilisateur est forcément connecté //Redirection vers home.php puisque que l'utilisateur est forcément connecté
header('Location: ./../pages/home.php'); header('Location: ./../pages/home.php');
exit;
?>