Chapitre 2 : Première utilisation et mise en garde
Recommandation
Afin de pouvoir développer dans des conditions optimales, nous allons procéder dans un premier temps à quelque mise en garde relatif à la configuration de PHP et à certain usage.
Les registers_globals : afin d'avoir une meilleur sécurité et éviter les mauvaise surprise, veillez bien à mettre la directive register_globals à off. Je vous invite à consulter votre hébergeur ou la doc de php pour savoir comment modifier cette directive.
Les fonctions session_register()... : certaine anciennes fonctions associées aux sessions sont encore présent dans PHP et aussi dans les tutoriel que vous pouvez trouvez sur le net. Or ces fonctions doit être impérativement oublié. Les fonctions touché par cette mise en garde sont :
-> session_register()
-> session_unregister()
-> session_is_registered()
-> session_unset()
Première utilisation
Avant toute chose, vous devez démarrer la session. Pour ce faire il faut utiliser la fonction session_start() qui permet d'initialiser la session.
Cette fonction renvoie toujours true. Il est donc parfaitement inutile de tester le retour.
Comme nous l'avons vue dans le chapitre suivant les sessions permettent de sauvegarder des variables au travers de la navigation. Le stockage s'effectue dans le tableau super-global : $_SESSION. Tous les types d'objets peuvent y être stockés hormis les variable de ressources (vous ne pouvez donc pas stocker de connexion à la base) et les variables dîtes cyclique (i.e. objet qui passe une référence à lui-même à un autre objet)
Afin de clarifer la situation nous allons mettre en pratique un exemple rapide permettant de compter le nombre de passage d'un visiteur sur une même page.
Code source php :
<?php
// On démarre la session
// On récupère la valeur du compteur si elle existe
if(@$_SESSION['compteur'] == '')
@$_SESSION['compteur'] = 1;
else
@$_SESSION['compteur']++;
// On affiche le nombre de visite
echo 'Vous avez visité cette page '.@
$_SESSION['compteur'].
' fois';
Parsé en 0.023s par
GeSHi 1.0.7.13
Pour voir cet exemple en action, recharger plusieur fois la page. Les sessions étant détruite à la fermeture du navigateur, ce compteur n'est pas (encore) capable de vous compter entre différentes visites.
Autres fonctions simple
- Supprimer une variable session : pour ce faire nous utiliserons unset. ATTENTION : l'utilisation de la fonction unset sur la superglobal $_SESSION détruira TOUTES vos variables session et rendra impossible la création de nouvelles. il faut donc veiller à bien l'utiliser comme ceci : unset($_SESSION['ma_variable']); et surtout pas unset($_SESSION);
- Forcer la destruction d'une session : à tout moment vous pouvez forcer la destruction complète de la session grace à la fonction session_destroy(). Celle-ci ne sera alors pas récupérable.
- Supprimer toutes les variables session : comme dit lus haut, il ne faut surtout pas utiliser la fonction unset() pour cette opération mais tout simplement : $_SESSION = array(); vous obtiendrez ainsi un tableau vide mais toujours utilisable.
Prochain chapitre
Dans le prochain chapitre, nous aborderons de façons plus complète la gestion des sessions que ce soit leur modification, leur suppression mais aussi la régénération d'un identifiant.