Cours4 : Les sessions Les sessions Plan Gestion d un caddie
Les sessions Rappel : Plusieurs possibilités existent pour transmettre des variables de pages en pages dans site web : les divers champs des formulaires, qu'ils soient hidden ou non. passer les variables directement à travers les liens (URL). utiliser les cookies. utiliser les sessions.
Les sessions Une session permet de faire circuler différentes variables (objet, tableau,..) à travers les pages d un site web Une session correspond à la durée de vie d un internaute visitant un site Web Depuis PHP 4, un module contient un ensemble de fonctions permettant de créer, détruire ou vérifier des sessions
Les sessions : les fonctions Les fonctions de gestion des sessions : session_start ( ) : Démarre une session session_register($var) : Enregistre la variable de session $var session_unregister($var) : Efface la variable de session $var session_is_registered($var) : pour la session en cours Vérifie si une variable est déclarée session_id( ) : Retourne l'identifiant de la session en cours session_name( ) : Retourne le nom de la session en cours session_unset( ) : Détruit toutes les variables de la session en cours session_destroy( ) : Détruit la session en cours..
Gestion des sessions Pour le suivi de session sous PHP, il faut appeler la fonction session_start( ) dans chaque script PHP où cette gestion de session est nécessaire avant toute balise HTML La fonction session_start( ) crée une nouvelle session si aucune n existe récupère la session existante sinon,
Gestion des 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.
Exemple : création d un espace membre Un site possède une section membre où chaque membre devra s identifier avant de pouvoir y entrer. On souhaiterait bien être sur qu'il s'agisse toujours de ce même membre qui est connecté. On a un formulaire (index.html) permettant au visiteur de se connecter à une section membre
Exemple1 : fichier index.html Le code source du formulaire <html><title>formulaire d'identification</title><body> <form action="login.php" method="post"> Login : <input type="text" name="login"><br> Mot de passe: <input type="password" name="pwd"><br> <input type="submit" value="connexion"> </form> </body></html>
Exemple1 :le fichier login.php Exemple : Utilisation de $_SESSION <?php $login_valide = "dupont "; $pwd_valide = "mmm1"; if (($_POST['login']==$login_valide) && ($_POST['pwd']== $pwd_valide )) { session_start(); $_SESSION[ monlogin'] = $_POST['login']; $_SESSION[ monpwd'] = $_POST['pwd']; // on redirige le visiteur vers une page membre header('location: membre.php'); } else {?> // puis on le redirige vers la page d'accueil header('location: index.html'); }
Exemple1 : fichier membre.php <?php session_start (); // On récupère les variables de session if (isset($_session['monlogin']) && isset($_session['monpwd'])) { echo "<html><title>page des membres</title><body>" ; echo "Votre login est : ".$_SESSION['monlogin']. "<br>"; echo "votre mot de passe est : ".$_SESSION['monpwd']. "<br>"; // On affiche un lien pour fermer notre session echo '<a href="./logout.php">déconnexion</a>'; } else { echo 'Les variables ne sont pas déclarées.'; }?>
Exemple1 : fichier logout.php <?php session_start (); // On démarre la session // On détruit toute 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.html');?>
Exemple2: login.php Exemple : utilisation de la fonction session_register <?php $login_valide = "dupont"; $pwd_valide = "mmm1"; if (($_POST['login']==$login_valide) && ($_POST['pwd']== $pwd_valide )){ session_start(); $monlogin = $_POST['login']; session_register ( monlogin ); $monpwd = = $_POST[ pwd']; session_register( monpwd ); // on redirige le visiteur vers une page membre header('location: membre.php'); } else { // puis on le redirige vers la page d'accueil header('location: index.html'); }?>
Gestion d un caddie (panier,.)
Gestion d un caddie (panier) Le fonctionnement du caddie 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 caddie afin d'y apporter quelques éventuelles modification avant de valider l'achat et de payer le tout
Gestion d un caddie Définition des actions Lors de l'utilisation d'un caddie, l'utilisateur à quelques commandes de base : ajouter un produit dans le caddie (utilisé pendant le parcours du catalogue), retirer un produit de la commande (utilisé lors de l'affichage du contenu du caddie), actualiser le caddie (idem, affichage du caddie - pour les clients qui voudraient ajouter ou enlever des produits) valider la commande.
Gestion d un caddie Utiliser : une session : au début de chaque page du site : session_start(); Un tableau associatif 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
Gestion d un caddie 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; 17
Gestion d un caddie 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']);
Gestion d un caddie 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 caddie <?php for ($i=0 ; $i< COUNT($_SESSION[' ref ']) ; $i++){ echo $_SESSION[' ref '][$i]; echo $_SESSION[' qte '][$i]; }?>
Le mail
Le mail : la fonction mail Pour envoyer un mail depuis un script PHP, il suffit d utiliser la fonction mail Syntaxe (non exhaustive) mail($dest, $sujet, $message, $entete); $dest : adresse mail du destinataire $sujet : sujet du message $message : corps du message à envoyer $entete : en-têtes à ajouter dans le message (chaque ligne de l en-tête doit être terminée par \r\n)
Le mail : la fonction mail Les lignes à ajouter sont introduites par les motsclés suivants : From: : adresse de l émetteur Cc: : adresses des personnes en copie (séparées par des,) Reply-To: : adresse à laquelle la réponse au message doit être envoyée X-Mailer: : nom de l agent de mail envoyé Content-Type: précise le type de contenu du mail (permet d envoyer du HTML, des messages suivant la norme MIME...)
Exemple : le mail <?php $dest = dupond@wanadoo.fr'; $sujet = 'le sujet'; $message = 'Bonjour! '; $entete = "From: dubois@laposte.net". "\r\n" ; $entete.= "Reply-To: dubois@laposte.net". "\r\n" ; $entete.= "X-Mailer: PHP/". phpversion( );?> mail($dest, $sujet, $message, $entete);