Apprenez à créer un système de connexion en PHP avec gestion des utilisateurs, sessions et sécurité de base étape par étape.
Pourquoi créer un système de login
Un système de login permet :
- d’authentifier un utilisateur
- de protéger certaines pages
- de gérer des comptes
- de créer un espace membre
C’est une fonctionnalité essentielle pour :
- blogs
- forums
- sites web
- applications
Étape 1 : la base de données
On commence par créer une table users.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(255)
); Étape 2 : enregistrer un utilisateur (mot de passe sécurisé)
Très important : ne jamais stocker un mot de passe en clair.
<?php
$password = "123456";
// Hash du mot de passe
$hash = password_hash($password, PASSWORD_DEFAULT);
?>
On enregistre ensuite $hash dans la base de données.
Étape 3 : formulaire de connexion
<form method="POST" action="login.php">
<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> Étape 4 : vérifier les identifiants
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
// Connexion PDO ici...
$sql = "SELECT * FROM users WHERE username = :username";
$stmt = $pdo->prepare($sql);
$stmt->execute(['username' => $username]);
$user = $stmt->fetch();
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user'] = $user['username'];
echo "Connexion réussie";
} else {
echo "Identifiants incorrects";
}
?>
Étape 5 : protéger une page
<?php
session_start();
if (!isset($_SESSION['user'])) {
header("Location: login.php");
exit();
}
?>
Seuls les utilisateurs connectés peuvent accéder à la page.
Étape 6 : déconnexion
<?php
session_start();
session_destroy();
header("Location: login.php");
exit();
?>
Bonnes pratiques de sécurité
Pour un système de login solide :
- utiliser
password_hash() - utiliser
password_verify() - protéger les pages avec les sessions
- éviter les injections SQL (PDO)
- limiter les tentatives de connexion
- utiliser HTTPS
Améliorations possibles
Tu peux améliorer ton système avec :
- système de rôles (admin, user)
- confirmation par email
- récupération de mot de passe
- authentification à deux facteurs (2FA)
- captcha anti-bot
Créer un système de login en PHP est une étape essentielle pour construire un site web dynamique. Avec l’utilisation des sessions, du hash des mots de passe et des requêtes sécurisées, il est possible de mettre en place une authentification simple mais efficace.
#php #login #authentication #webdev #securite #developpementweb #backend