Utilisation de foreach avec les sessions sous PHP5
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:
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:
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 ?