Vous ne souhaitez pas créer de (nouvelle) session lorsque l'utilisateur se connecte. Vous créez/reprenez la session sur chaque page.
Voici un exemple décomposé à l'essentiel.
login.php
<?php
session_start();
if ($_POST['user'] == 'john' && $_POST['pwd'] == 'password') {
$_SESSION['loggedIn'] = true;
$_SESSION['firstname'] = 'John';
}
?>
admin.php
<?php
session_start();
if (!isset($_SESSION['loggedIn']) || !$_SESSION['loggedIn']) {
header('location: login.php');
exit();
}
echo 'Hello ' . $_SESSION['firstname'] . '!';
?>
- utilisateur visite admin.php
session_start()
crée une nouvelle session. Toutes les données ($ _SESSION) sont stockées sur le serveur. Un nouveau cookie avec l'ID de la session est stocké côté client.
- L'utilisateur est redirigé vers login.php afin qu'il n'y a pas
$_SESSION['loggedIn']
ensemble clé de true
session_start()
ravive la session par le cookie envoyé par le navigateur
- L'utilisateur soumet un formulaire et authentifie. A l'intérieur du tableau
$_SESSION
, nous notons cela.
- L'utilisateur revient à admin.php et peut maintenant accéder à la page.