Aller au contenu principal

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

  1. Formulaire de connexion : Créez un formulaire HTML où l'utilisateur peut entrer son nom d'utilisateur et son mot de passe.

  2. 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.

  3. Démarrage de la session : Si les identifiants sont corrects, démarrez une session et stockez les informations de l'utilisateur.

  4. 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

  1. Formulaire de connexion : Créez un fichier login.html pour le formulaire.
  2. Vérification et gestion des sessions : Implémentez login.php pour gérer la logique de connexion.
  3. Page protégée : Créez dashboard.php pour afficher les informations de l'utilisateur connecté.
  4. Déconnexion : Implémentez logout.php pour détruire la session.

Test de mémorisation/compréhension


Quelle fonction PHP démarre une session ?


Comment vérifier si un utilisateur est connecté ?


Quelle fonction PHP est utilisée pour détruire une session ?


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_login dans votre répertoire "Documents".
  • Créez les fichiers index.php, login.php, dashboard.php, et logout.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