2009-06-26 7 views
0

Lorsque je me connecte, une nouvelle session est générée. Comment savoir plus tard pour quel login la session a été générée?Mappage des sessions aux utilisateurs

Je reçois la valeur de session, mais comment puis-je savoir à quel utilisateur appartient la session et le rediriger vers cette page?

Répondre

2

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.
Questions connexes