Session pour le login
Utiliser les sessions pour le login
Notions théoriques
Introduction
Les sessions sont essentielles pour gérer l'authentification des utilisateurs sur un site web. Elles permettent de maintenir l'état de connexion d'un utilisateur entre les différentes pages.
Mise en place d'un système de login avec sessions
-
Formulaire de connexion : Créez un formulaire HTML où l'utilisateur peut entrer son nom d'utilisateur et son mot de passe.
-
Vérification des identifiants : Lors de la soumission du formulaire, vérifiez les identifiants de l'utilisateur par rapport à une base de données ou un ensemble de données statiques.
-
Démarrage de la session : Si les identifiants sont corrects, démarrez une session et stockez les informations de l'utilisateur.
-
Gestion de la session : Sur chaque page nécessitant une authentification, vérifiez si une session est active.
Exemple de code
Formulaire de connexion
Créez un formulaire HTML, dans un fichier
login.php, pour permettre à l'utilisateur de saisir son nom d'utilisateur et son mot de passe.
<!DOCTYPE html>
<html>
<body>
<h2>Connexion</h2>
<form action="login.php" method="post">
<label for="username">Nom d'utilisateur :</label><br>
<input type="text" id="username" name="username"><br>
<label for="password">Mot de passe :</label><br>
<input type="password" id="password" name="password"><br><br>
<input type="submit" value="Se connecter">
</form>
</body>
</html>
Traitement du login, dans le fichier login.php
Ce fichier vérifie les identifiants de l'utilisateur et démarre une session si les identifiants sont corrects.
<?php
session_start();
// Données d'exemple
$users = [
'admin' => 'password123',
'user' => 'mypassword'
];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $_POST['username'];
$password = $_POST['password'];
if (isset($users[$username]) && $users[$username] === $password) {
$_SESSION['username'] = $username;
header('Location: dashboard.php');
} else {
echo "Identifiants incorrects.";
}
}
?>
Page protégée dans le fichier dashboard.php
Cette page nécessite une session active pour afficher les informations de l'utilisateur.
<?php
session_start();
if (!isset($_SESSION['username'])) {
header('Location: login.php');
exit();
}
echo "Bienvenue, " . $_SESSION['username'] . "!";
?>
<p><a href="logout.php">Se déconnecter</a></p>
Déconnexion dans le fichier logout.php
Ce fichier détruit la session et redirige l'utilisateur vers la page de connexion.
<?php
session_start();
session_unset();
session_destroy();
header('Location: login.php');
?>
Exemples pratiques
Création d'un système de login complet
- Formulaire de connexion : Créez un fichier
login.htmlpour le formulaire. - Vérification et gestion des sessions : Implémentez
login.phppour gérer la logique de connexion. - Page protégée : Créez
dashboard.phppour afficher les informations de l'utilisateur connecté. - Déconnexion : Implémentez
logout.phppour détruire la session.
Test de mémorisation/compréhension
TP - Création d'un système de login
Dans ce TP, vous allez créer un système de login simple qui utilise les sessions pour gérer l'authentification des utilisateurs.
- Créez un dossier
tp_logindans votre répertoire "Documents". - Créez les fichiers
index.php,login.php,dashboard.php, etlogout.php. - Suivez les étapes ci-dessus pour implémenter chaque fichier.

Dans le fichier index.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Accueil</title>
</head>
<body>
<h1>Accueil</h1>
<a href="login.php">Se connecter</a>
<a href="dashboard.php">Tableau de bord</a>
<a href="logout.php">Se déconnecter</a>
</body>
</html>
Solution possible
Vous devez être connecté pour voir le contenu.