Confection de la base de données - Yhernam/Stage GitHub Wiki
-- Créez une base de données
CREATE DATABASE mydatabase;
-- Utilisez la base de données
USE mydatabase;
-- Créez une table des administrateurs
CREATE TABLE admins (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password VARCHAR(255) NOT NULL
);
<?php
$passwordHash = password_hash('ah', PASSWORD_BCRYPT);
echo $passwordHash;
?>
INSERT INTO admins (username, password) VALUES ('admin', 'hash_du_mot_de_passe');
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Connexion Admin</title>
</head>
<body>
<form action="login.php" method="POST">
<label for="username">Nom d'utilisateur :</label>
<input type="text" id="username" name="username" required><br><br>
<label for="password">Mot de passe :</label>
<input type="password" id="password" name="password" required><br><br>
<input type="submit" value="Se connecter">
</form>
</body>
</html>
<?php
session_start();
// Connexion à la base de données
$host = 'localhost';
$dbname = 'mydatabase';
$username = 'root'; // remplacez par votre nom d'utilisateur de base de données
$password = ''; // remplacez par votre mot de passe de base de données
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("Erreur de connexion : " . $e->getMessage());
}
// Récupérer les données du formulaire
$form_username = $_POST['username'];
$form_password = $_POST['password'];
// Requête pour récupérer l'utilisateur
$sql = "SELECT * FROM admins WHERE username = :username";
$stmt = $pdo->prepare($sql);
$stmt->execute(['username' => $form_username]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);
if ($user && password_verify($form_password, $user['password'])) {
// Authentification réussie
$_SESSION['admin_logged_in'] = true;
$_SESSION['admin_username'] = $user['username'];
header("Location: admin/admin.html");
exit;
} else {
// Authentification échouée
echo "Nom d'utilisateur ou mot de passe incorrect.";
}
?>
Ajouter en haut du fichier : admin.html
<?php
session_start();
// Vérifier si l'administrateur est connecté
if (!isset($_SESSION['admin_logged_in']) || $_SESSION['admin_logged_in'] !== true) {
header("Location: login.html");
exit;
}
echo "Bienvenue, " . $_SESSION['admin_username'] . "! Vous êtes connecté au tableau de bord admin.";
?>
<a href="deconnexion.php">Déconnexion</a>
Créer un fichier : deconnexion.php
<?php
session_start();
session_unset();
session_destroy();
header("Location: login.html");
exit;
?>
Pour garantir la sécurité :
- Utiliser
password_hash
pour stocker les mots de passe hachés. - Utiliser des requêtes préparées pour éviter les injections SQL.
- Mettre en oeuvre des mesures de sécurité supplémentaire (comme la protection CSRF) si nécessaire.