DEV Community

Oulia Abbadi
Oulia Abbadi

Posted on

Créer un système d'authentification PHP : Projet Pâtisserie

Comment créer un système d'authentification sécurisé en PHP : Retour d'expérience
Salut à tous ! Dans le cadre de mon projet de gestion d'une pâtisserie, j'ai mis en place un système d'authentification pour sécuriser l'accès à l'interface d'administration. Je partage avec vous les étapes clés et ce que j'ai appris.

  1. La base de données (MySQL) Tout commence par une table users. L'essentiel est de stocker les identifiants de manière propre pour garantir une gestion efficace des accès.

  1. Le Formulaire de Connexion (HTML/CSS) J'ai conçu une interface simple et intuitive. L'important ici est d'utiliser la méthode POST pour ne pas afficher les identifiants dans l'URL.
<form action="login.php" method="POST">
    <input type="text" name="username" placeholder="Nom d'utilisateur" required>
    <input type="password" name="password" placeholder="Mot de passe" required>
    <button type="submit">Se connecter</button>
</form>
Enter fullscreen mode Exit fullscreen mode

  1. La Logique Backend (PHP & Sessions) C'est ici que la magie opère. J'utilise PDO pour la connexion à la base de données afin de prévenir les injections SQL. Le flux est simple : récupération des données, vérification, puis démarrage de la session.

PHP
// Exemple de vérification

if($user && password_verify($password, $user['password'])) {
    $_SESSION['admin'] = $user['username'];
    header('Location: admin.php');
}
Enter fullscreen mode Exit fullscreen mode
  1. Sécuriser les pages privées Pour empêcher l'accès direct via l'URL, j'ai ajouté un check au début de mes fichiers protégés :
session_start();
if(!isset($_SESSION['admin'])) {
    header('Location: login.php');
    exit();
}
Enter fullscreen mode Exit fullscreen mode

Ce que j'ai appris
La sécurité avant tout : Ne jamais stocker de mots de passe en clair.

L'importance des messages d'erreur : Pour guider l'utilisateur.

Modularité : Séparer la connexion à la base de données rend le code plus propre.

Top comments (0)