|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : septembre 2003 Messages : 20 ![]() |
Bonjour,
J'ai choisi de gérer moi même mes sessions et pour valider cette idée j'ai réutilisé le code example fourni dans le manuel php en ligne. J'ai mis ce code dans un include. Pour chaque page, je spécifie l'include, puis je passe l'instruction de session_start(). J'ai constaté que sur chacune de mes pages une nouvelle Id de session est attribuée (ce que je ne souhaite pas) et mon tableau $_SESSION ne contient plus ses valeurs. Je n'utilise que des sessions entre mes pages, pas de méthode POST/GET. Mais je positionne un cookie à chaque page et ce dernier contient le SID, le nom de l'hôte et le chemin et la durée de vie est à 0. Dans le répertoire où se trouvent les infos sur les sessions, je constate effectivement un fichier par page. Ce que je souhaite faire, c'est de mémoriser mes variables de l'application dans la superglobale $_SESSION à partir de la 1ere page pour toute l'application afin de ne pas avoir à décoder tous mes fichiers paramètres à chaque page. Si quelqu'un pouvait éclairer ma lanterne ... D'avance merci |
|
|
00
|
|
|
#2 |
|
Invité régulier
![]() Inscription : septembre 2003 Messages : 20 ![]() |
Suite à la consultation d'autres forums je voudrais préciser l'architecture
de mes pages. L'utilisateur arrive sur la page d'index qui est un formulaire de login avec saisie de login/pass. En tête de cette 1ere page j'ai une instruction de session_start(). Les variables sont envoyées vers une page de traitement avec un POST qui vérifie le login/pass. Cette page contient aussi une instruction session_start(). Au cours de la vérification du login, suivant le nom d'utilisateur on arrive sur une 3eme page (A) ou une 3eme page (B) qui sont dans un include. Les pages 3 sont des menus sur lesquels l'utilisateur effectue ses choix. Sur ces pages 3 j'ai également un session_start(). Chacune de ces intructions session_start() me démarre apparement une nouvelle session avec un nouvel SID et un nouveau fichier sur le disque. Or, il me semblait avoir compris qu'après la 1ere initialisation de session les autres instructions session_start() servaient à relire le contenu de $_SESSION stocké dans le fichier sur le disque ou la bdd. Y-aurait-il quelque chose que j'aurais mal compris ? Merci |
|
|
00
|
|
|
#3 |
|
Membre éprouvé
![]() ![]() Inscription : août 2006 Messages : 313 ![]() |
Bizzare, as tu configuré ton cookie de stockage ?
session_set_cookie_params A priori, ton utilisateur n'a pas l'air d'enregistrer d'identifiant de session donc php en genere un nouveau a chaque fois. |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : septembre 2003 Messages : 20 ![]() |
Non, mais juste après session_start() je fais
setcookie ("biocookie",SID,0,$Chemin,$Domaine); ce qui me créé bien un cookie dans le navigateur avec l'id de la session courante. Par ailleurs j'ai un include qui positionne divers paramètres pour mon application (inclus avant session_start()) contenant : ----------- if ( ini_get( 'session.use_cookies' ) == 0 ) { ini_set('session.use_cookies','1'); } if ( ini_get( 'session.use_only_cookies' ) !== 0 ) { ini_set('session.use_only_cookies','0');possibles } ini_set ('session.save_handler','user'); ini_set ('session.save_path','/tmp'); ini_set ('session.name','biosession'); ini_set ('session.auto_start','0'); ini_set ('session.cookie_lifetime','0'); ini_set ('session.cookie_path','/'); ini_set ('session.cookie_domain',NMVHOST); ini_set ('session.referer_check',RFSTRG); ini_set ('session.cache_limiter','nocache'); ini_set ('session.hash_function','0'); ini_set ('session.hash_bits_per_char','6'); ini_set ('session.gc_maxlifetime','3600'); ------------ Lorsque je vérifie l'id de session avec un echo il correspond toujours au cookie. J'ai consulté pas mal d'exemples pour trouver une piste qui provoquerait l'attribution d'un nouvel id mais à chaque fois c'est pas mon cas: - le répertoire de stockage de la session est accessible - les fichiers de session sont bien créés à cet endroit - j'ai vu qu'il ne fallait pas invoquer session_start lors d'instructions de POST ou d'include de pages. Si je fais cela, je n'ai pas de nouvel id de session mais $_SESSION est vide = dans le fond le même problème. J'y ai passé des heures et je ne vois pas où chercher plus avant. Merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com