Bonjour,
Le but du code est d'effacer le contenu de $_SESSION si une certaine clé n'existe pas ou si elle ne contient pas la bonne valeur, valeur de type constante définie par l'instruction define.
Le code suivant ne fonctionne pas :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 if (!isSet($_SESSION['ProductId'])) $_SESSION['ProductId']=''; if ($_SESSION['ProductId'] != ProductId){ foreach ($_SESSION as $cle=>$value) unset $_SESSION[$cle]; } $_SESSION['ProductId']=ProductId;
En fait, avec ce code, $_SESSION['ProductId'] est perdu à chaque rechargement de la page (ce n'est pas qu'il contient une mauvaise valeur, mais plutot qu'il n'est pas défini). Par contre le code ci-dessous fonctionne bien
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (!isSet($_SESSION['ProductId'])) $_SESSION['ProductId']=''; if ($_SESSION['ProductId'] != ProductId){ reset ($_SESSION); while (list($cle,$value) = each ($_SESSION)) unset ($_SESSION[$cle]); } $_SESSION['ProductId']=ProductId;
Et je ne comprend pas pourquoi le premier code ne convient pas ... pouvez vous m'éclairer ?
Partager