Compte Rendu - TP4: Système d'authentification en PHP et MySQL

Partie 1 - Gestion des sessions

Exercice 1 : Création de variables de session

Objectif : Créer une page qui démarre une session, initialise des variables de session et redirige vers une autre page.
Approche de réalisation :
  • Utilisation de session_start() pour démarrer la session
  • Création de variables de session pour stocker nom, prénom, email et heure
  • Utilisation de time() pour enregistrer l'heure de connexion
  • Redirection vers page2.php avec header()
Code page1.php :
<?php
session_start();

$_SESSION['nom'] = "Dupont";
$_SESSION['prenom'] = "Jean";
$_SESSION['email'] = "jean.dupont@email.com";
$_SESSION['heure'] = time();

header("Location: page2.php");
exit();
?>
Explication du fonctionnement : Ce code démarre une session PHP avec session_start(), puis crée quatre variables de session contenant des informations utilisateur fictives. La variable $_SESSION['heure'] stocke l'heure actuelle en utilisant la fonction time(). Enfin, le script redirige automatiquement vers page2.php grâce à la fonction header().

Exercice 2 : Affichage des variables de session

Objectif : Créer une page qui récupère et affiche les variables de session créées précédemment.
Approche de réalisation :
  • Démarrage de session avec session_start()
  • Vérification de l'existence des variables de session avec isset()
  • Affichage personnalisé des valeurs des variables
  • Utilisation de date() pour formater l'heure stockée
Code page2.php :
<?php
// Démarrage de la session
session_start();

// Vérification de la présence des variables de session
if (isset($_SESSION['nom']) && isset($_SESSION['prenom']) && isset($_SESSION['email']) && isset($_SESSION['heure'])) {
    echo "Bonjour " . $_SESSION['prenom'] . " " . $_SESSION['nom'] . "<br>";
    echo "Votre email : " . $_SESSION['email'] . "<br>";
    echo "Heure de connexion : " . date("d/m/Y H:i:s", $_SESSION['heure']) . "<br>";
} else {
    echo "Aucune variable de session trouvée.";
}

// Lien vers logout.php
echo '<a href="logout.php">Déconnexion</a>';
?>
Explication du fonctionnement : Ce script vérifie d'abord si toutes les variables de session nécessaires existent. Si c'est le cas, il affiche un message de bienvenue personnalisé avec les informations de l'utilisateur. La fonction date() est utilisée pour formater l'heure stockée dans un format lisible. Enfin, un lien de déconnexion est fourni pour permettre à l'utilisateur de terminer sa session.

Exercice 3 : Déconnexion et destruction de session

Objectif : Créer une page permettant de détruire la session active et de déconnecter l'utilisateur.
Approche de réalisation :
  • Démarrage de session avec session_start()
  • Destruction de la session avec session_destroy()
  • Affichage d'un message de confirmation
  • Lien vers la page d'authentification
Code logout.php :
<?php
// Démarrage de la session
session_start();

// Destruction de la session
session_destroy();

// Affichage du message de déconnexion
echo "Vous avez été déconnecté avec succès.<br>";

// Lien vers la page d'authentification
echo '<a href="login.php">Se connecter</a>';
?>
Explication du fonctionnement : Ce script de déconnexion démarre la session pour y accéder, puis utilise session_destroy() pour supprimer toutes les données de session. Un message de confirmation est affiché à l'utilisateur, suivi d'un lien pour retourner à la page de connexion.

Page de connexion pour la Partie 1

Code login.php :
<?php
session_start();

// Redirection vers page1.php pour démarrer la session
header("Location: page1.php");
exit();
?>
Explication du fonctionnement : Pour la Partie 1 qui traite uniquement des sessions sans base de données, la page login.php sert simplement de point d'entrée. Elle redirige immédiatement vers page1.php qui va démarrer la session et créer les variables de session avec des valeurs fixes.