Hashage et sallage des MDPs (fonctionnel)
This commit is contained in:
@@ -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
@@ -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
@@ -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
@@ -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;
|
||||||
|
?>
|
||||||
Reference in New Issue
Block a user