[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.
A voir également:

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 011
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 117
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