[PHP] session_start()

Résolu/Fermé
zimeau
Messages postés
710
Date d'inscription
jeudi 19 avril 2007
Statut
Membre
Dernière intervention
10 juin 2014
- 12 mars 2010 à 12:07
zimeau
Messages postés
710
Date d'inscription
jeudi 19 avril 2007
Statut
Membre
Dernière intervention
10 juin 2014
- 12 mars 2010 à 14:18
Bonjour,

je souhaiterais utiliser la fonction session() de PHP, mais quelque chose ne fonctionne pas dans mon code.
je met avant tout code html l'ouverture de session, a savoir <?php session_start(); ?>
ensuite, dans mon php, j'ai mis ce morceaux de code :
/*
$id = Identifiant de l'article dans la table
*/
if(!array_key_exists($id, $_SESSION['articles_lus'])) {
    $_SESSION['articles_lus']= $id;
    echo "article pas encore lu";
}
else {
     echo "article lu";
}


le problème est que j'ai toujours le message "article pas encore lu" qui s'affiche, alors que je souhaiterais qu'il s'affiche a la première lecture, mais pas si l'article est relu sous la même session (dans ce cas, il affiche "article lu").
quelqu'un saurais d'où viens mon erreur SVP?
Merci.

2 réponses

Reivax962
Messages postés
3671
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 006
12 mars 2010 à 12:15
Bonjour,

Je pense que tu fais une petite confusion entre clés et valeurs dans ton tableau.
Quand tu écris
if(!array_key_exists($id, $_SESSION['articles_lus']))

tu sous-entends que $_SESSION['articles_lus'] est un tableau, puisqu'il contiendrait une clé $id.
Par contre, tu ne le traites pas comme un tableau dans la ligne suivante :
$_SESSION['articles_lus']= $id;


Il faudrait remplacer ton code "if" par ceci :
if(!array_key_exists($id, $_SESSION['articles_lus'])) {
    $_SESSION['articles_lus'][$id]= $id;
    echo "article pas encore lu";
}


Par contre, il faut aussi qu'au moment où tu crées la variable de session $_SESSION['articles_lus'], tu lui précises qu'il s'agit d'un tableau, par exemple de la façon suivante :
$_SESSION['articles_lus'] = array();

Xavier
0
zimeau
Messages postés
710
Date d'inscription
jeudi 19 avril 2007
Statut
Membre
Dernière intervention
10 juin 2014
116
12 mars 2010 à 14:18
ça marche! merci bien pour l'aide!
pour la variable SESSION, je pense que c'est un tableau dés sa création :
Description :
Un tableau associatif des valeurs stockées dans les sessions, et accessible au script courant.
Merci!
0