IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Utilisation de foreach avec les sessions sous PHP5


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 123
    Points : 85
    Points
    85
    Par défaut 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 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 ?

  2. #2
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    J'ai du mal a comprendre ton code, c'est assez fouilli.

    Mais quand tu fais un unset() d'une variable de session, celle ci disparait définitivement de la session, et donc pour la page d'après elle ne reviendra pas ce qui est normal.

    Maintenant d'après ce que j'ai compris, tu veux effacer le contenu de $_SESSION si ($_SESSION['ProductId'] != ProductId). Donc tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if ($_SESSION['ProductId'] != ProductId)
    {
       unset($_SESSION);
    }
    Si jamais ca efface toujours pas le contenu (je ne suis pas sur qu'un unset de la globale efface le contenu dans le cadre des sessions), comme tu avais fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if ($_SESSION['ProductId'] != ProductId)
    {
       foreach ($_SESSION AS $key => $value)
          unset($_SESSION[$key]);
    }
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

Discussions similaires

  1. Installer "les sessions" sous Apache2.2 & PHP5
    Par jiojio dans le forum Langage
    Réponses: 8
    Dernier message: 08/01/2009, 16h00
  2. probleme avec les session et php5
    Par stephcache dans le forum Langage
    Réponses: 5
    Dernier message: 08/06/2006, 18h34
  3. problème avec les div sous Mozilla
    Par MrsFrizz dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 13/10/2005, 11h54
  4. (Débutant API) Utilisation de Richedit avec les APIs
    Par LibrairieSI dans le forum Windows
    Réponses: 2
    Dernier message: 10/08/2005, 16h53
  5. PB d'import avec les ActiveX sous BCB6
    Par dergen dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/11/2002, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo