Vous êtes sur la page 1sur 11

Université Moulay Ismail Année universitaire : 2019/2020

Faculté des Sciences et Techniques Filière Génie Logiciel : I616


Département d’Informatique Prof Y.FARHAOUI
Errachidia

Programmation Web
Langage PHP(Session)

1
Prof Yousef FARHAOUI
Les sessions et les cookies
Plusieurs possibilités existent pour transmettre des variables de pages en pages dans site web :
1. les divers champs des formulaires, qu'ils soient hidden ou non.
2. passer les variables directement à travers les liens.
3. utiliser les cookies.
4. utiliser les sessions.

Les sessions sont un moyen de stocker des informations relatives au visiteur. Il s’agit d’une
alternative aux cookies.
La différence entre les sessions et les cookies est que les cookies sont stockés sur le poste du
visiteur tandis que les sessions sont dans des fichiers présents sur le serveur. Il s’agit d’un
stockage temporaire mais, les fichiers de sessions ne peuvent pas être vus et modifiés,
contrairement aux cookies.

Comment ça fonctionne ?
Les informations sont stockées dans des fichiers, sur le serveur, à chaque session correspond
un fichier. Chaque session est désignée par un nom et un identifiant (l’identifiant est une
chaîne de 32 caractères hexadécimale générée par md5).

2
Les sessions
Normalement, la session est détruite ou à la fermeture du navigateur, ou au bout de 30
minutes. Cette valeur peut être modifiée dans le fichier php.ini.

Les fonctions de gestion des sessions :

Fonction Signification
session_start Démarre une session
session_register Enregistre une variable de session
session_unregister Efface une variable de session
Vérifie si une variable est déclarée pour
session_is_registered
la session en cours
session_id Retourne l'id de la session en cours
session_name Retourne le nom de la session en cours
Detruit toutes les variables de la session
session_unset
en cours
session_destroy Detruit la session en cours

3
Les sessions

chaque session a un identifiant différent (ce qui permet d'éviter la confusion


entre les connexions).

toutes les variables enregistrées au cours d’une session, seront accessibles dans
les pages en utilisant :
Soit le tableau $_SESSION
Soit les fonctions : session_register , session_is_register ou session_unregister

Les variables de session doivent être détruites lors de la déconnexion.

4
Les sessions (Exemple)

On aura alors une page contenant un formulaire permettant à notre visiteur de se connecter à une
section membre (page index.htm) : exemple1.php
<html>
<head>
<title>Formulaire d'identification</title>
</head>
<body>
<form action="login.php" method="post">
Votre login : <input type="text" name="login">
<br />
Votre mot de passe : <input type="password"
name="pwd"><br />
<input type="submit" value="Connexion">
</form>
</body>
</html>

5
Les sessions (Exemple)
On aura alors par exemple (page login.php) :
<?php
// On définit un login et un mot de passe de base pour tester notre exemple. Cependant, vous pouvez très bien interroger
votre base de données afin de savoir si le visiteur qui se connecte est bien membre de votre site
$login_valide = "moi";
$pwd_valide = " 1234";
if (isset($_POST['login']) && isset($_POST['pwd'])) {
if ($login_valide == $_POST['login'] && $pwd_valide == $_POST['pwd']) {
// dans ce cas, tout est ok, on peut démarrer notre session
session_start ();
// on enregistre les paramètres de notre visiteur comme variables de session
$_SESSION['login'] = $_POST['login'];
$_SESSION['pwd'] = $_POST['pwd'];
// on redirige notre visiteur vers une page de notre section membre
header ('location: page_membre.php');
}
else {
// Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
echo '<body onLoad="alert(\'Membre non reconnu...\')">';
// puis on le redirige vers la page d'accueil
header ('location: index.htm‘);
}
}
else {
echo 'Les variables du formulaire ne sont pas déclarées.';
}
?>
6
Les sessions (Exemple)
Remarquer également que nous utilisons notre session_start avant tout code HTML.
Voyons alors le code de la page de notre section membre, la page page_membre.php.
On a :
<?php
// On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
session_start ();
// On récupère nos variables de session
if (isset($_SESSION['login']) && isset($_SESSION['pwd'])) {
// On teste pour voir si nos variables ont bien été enregistrées
echo '<html>';
echo '<head>';
echo '<title>Page de notre section membre</title>';
echo '</head>';
echo '<body>';
echo 'Votre login est '.$_SESSION['login'].' et votre mot de passe est'.$_SESSION['pwd'].'.';
echo '<br />';
// On affiche un lien pour fermer notre session
echo '<a href="./logout.php">Déconnection</a>';
}
else {
echo 'Les variables ne sont pas déclarées.';
}
?>

7
Les sessions (Exemple)
Voyons alors le code de la page permettant au membre de se déconnecter (la page logout.php).
On aura alors :
<?php
// On démarre la session
session_start ();
// On détruit les variables de notre session
session_unset ();
// On détruit notre session
session_destroy ();
// On redirige le visiteur vers la page d'accueil
header ('location: index.htm');
?>

Résumons alors tout ce que nous venons de voir :


1. chaque session à un id différent (ce qui permet d'éviter la confusion entre les connexions).
2. à chaque page où notre session doit être active, on doit placer un session_start en tout début de
page (avant tout code HTML).
3. toutes les variables enregistrées au cours de notre session, seront accessibles dans les pages de
notre session.
4. n'oubliez JAMAIS de détruire vos variables de session lors de la déconnexion.

8
Application
Gestion d’un panier

Le fonctionnement du panier
L'utilisateur parcourt le catalogue disponible sur le Web, choisit les produits qu'il désire
acheter, et en fin de parcours, regarde une dernière fois le contenu de son panier afin d'y
apporter quelques éventuelles modification avant de valider l'achat et de payer le tout.

Définition des actions


Lors de l'utilisation d'un panier, l'utilisateur à quelques commandes de base :
1. ajouter un produit dans le panier(utilisé pendant le parcours du catalogue),
2. retirer un produit de la commande (utilisé lors de l'affichage du contenu du panier),
3. actualiser le panier(idem, affichage du panier - pour les clients qui voudraient ajouter
ou enlever des produits)
4. valider la commande.

9
Application
Gestion d’un panier
Utiliser :
1. une session : au début de chaque page du site :
session_start();
2. Un tableau associatif $_SESSION
Exemple :
session_register("ref");
$_SESSION['ref '] = array();
session_register("qte");
$_SESSION['qte']= array();
Le tableau " ref" contiendra la référence du produit
Le tableau "qte" contiendra la quantité commandée du produit

Ajouter un élément dans une variable session de type tableau :


Exemple : le produit dont l’identifiant est «b23 » et la quantité commandée est « 7 »

$_SESSION['ref'][$i]="b23" ;
$_SESSION['qte'][$i]=7;

10
Application
Gestion d’un panier
Récupérer le ième élément du tableau
$_SESSION['ref'][$i];
$_SESSION['qte'][$i];
Supprimer le ième élément de la variable session de type tableau (ex : le tableau ref)
Array_splice($_SESSION['ref'], $i , 1);
Récupérer le nombre d’éléments du tableau « ref»
COUNT($_SESSION['ref']);

Vider un tableau
$_SESSION[‘ref’]=array();
Afficher le contenu d’une variable session du type tableau
Exemple: les tableaux « ref » et « qte » représentant le contenu du panier
<?php
for ($i=0 ; $i< COUNT($_SESSION[' ref ']) ; $i++){
echo $_SESSION[' ref '][$i];
echo $_SESSION[' qte '][$i];
}
?>

11

Vous aimerez peut-être aussi