Bonjour,
Utiliser une session n'est pas trés compliqué mais il faut d'abord comprendre comment ça marche et comment utiliser une session.
Je vais t'expliquer:
...
- on peut garder des informations sur plusieurs pages avant de les enregistrer dans une base de donnée ?
exemple : un formulaire d'enregistrement qui à 3 pages
...
C'est juste, sauf que quand tu parles de "pages" tu sous-entends "session"
Parce que c'est Kif-Kif, une session est un enchainement de pages consultées par l'utilisateur.
Quand les pages d'une session ont besoin de partager des données, ces dernières sont stockées dans le fichier "session"
Eh oui, il y a un fichier "session" de créé côté serveur pour chaque utilisateur qui consulte le lot de pages de la session
Ce qu'il faut savoir:
Pour créer une session de pages, il suffit d'indiquer au début de toutes les pages PHP concernées la fonction "session_start();"
Toute page commençant par session_start() rappelle une session existante ou crée une nouvelle session pour un utilisateur.
Quand une session existe, un fichier de session est créé côté serveur dans le répertoire /tmp de la racine du serveur apache
Ce fichier porte comme nom un n° de code aléatoire dit SID qui identifie l'utilisateur distant.
Ce fichier contient les données de la session utilisables par toutes les pages PHP de la session, on les appelle : des variables super-globales et sont notées en PHp par : $_SESSION["variable1"] ...
Quand on veut créer une variable de session dans une page X on écrit:
Page X.php
session_start();
$_SESSION["ma_variable"] = "valeur";
Quand on veut afficher par exemple cette variable super-globale dans une autre page Y dans le cadre de la même session on écrite:
Page Y.php
session_start();
echo $_SESSION["ma_variable"];
Si l'on veut voir le fichier de session : aller sur le dossier /tmp de la racine d'apache et éditer le fichier ayant le SID de la session ciblée
Pour connaitre le SID d'une session, appeler la fonction session_id().
Exemple : dans la page X.php, ajouter la ligne suivante:
echo session_id(); après session_start();
Et maintenant un petit exercice simple :
Page 1 d'entrée : accueil.htm (c'est une simple page HTML) qui affiche un formulaire de connexion au site
Code : Tout sélectionner
<h3>Connectez-vous</h2>
<form method=post action=connexion.php>
<p>Nom <input name=nom> Mot de passe <input type=password name=mdp> <input type=submit value=ok>
</form>
Page 2 : connexion.php : programme qui valide les données du formulaire et autorise ou non l'accès au site
<?
//démarrer le session
session_start();
//Traiter le formulaire
$nom = isset($_POST["nom"]) ? $_POST["nom"] : null;
$mdp= isset($_POST["mdp"]) ? $_POST["mdp"] : null;
//Autoriser l'utilisateur
if ($nom == "admin" && $mdp == "admin"){
//utilisateur connu : mémoriser son identité dans la session
$_SESSION["autorisé"] = true;
$_SESSION["nom"] = "admin";
$_SESSION["mdp"] = "admin";
$_SESSION["adresse"] = "72000 Le mans";
//A ce niveau l'accès est autorisé alors afficher la page suivante
header ("Location: page_privée.php");
}
//ici l'accès est refusé alors rester sur la page de connexion
else echo "Saisissez un nom et mot de passe valides!";
?>
Page 3 : page_privée.php: programme qui vérifie si une session valide est active et affiche le contenu privatisé du site
<?
//démarrer la session
session_start();
//pour savoir si l'utilisateur qui a affiché cette page est déjà autorisé
//il suffit de vérifier si les variables le concernant son identité sont bien
//créées dans la session et notament notre variable "autorisé" (voir page précédente)
//On teste alors cette variable : si elle existe (isset) et si elle contient true
if (isset($_SESSION["autorisé"]) && $_SESSION["autorisé"]==true) {
//Dans ce cas l'utilisateur a été bel et bien identifié donc il est autorisé à voir cette page
//Afficher le contenu de la page
//On a besoin de rappeler le nom de l'utilisateur autorisé
$nom = $_SESSION["nom"];
echo "<marquee width=100%><h1>Bienvenue $nom</h1></marquee>";
//etc. vous pouvez ajouter ici le contenu HTML de cette page
}
//La variable de session "autorisé" est absente ou incorrecte : l'accès est refusé
else echo "Cette page est privée, vous devez être autorisé!";
?>