Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/05/2008, 12h18   #1
Invité régulier
 
Inscription : septembre 2003
Messages : 20
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 20
Points : 6
Points : 6
Par défaut [Cookies] set_save_handler/pb suivi session

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
nadine.mauch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 14h37   #2
Invité régulier
 
Inscription : septembre 2003
Messages : 20
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 20
Points : 6
Points : 6
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
nadine.mauch est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/05/2008, 15h12   #3
Membre éprouvé
 
Homme
Inscription : août 2006
Messages : 313
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Secteur : High Tech - Électronique et micro-électronique

Informations forums :
Inscription : août 2006
Messages : 313
Points : 497
Points : 497
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.
Phelim est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2008, 09h58   #4
Invité régulier
 
Inscription : septembre 2003
Messages : 20
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 20
Points : 6
Points : 6
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
nadine.mauch est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h24.


 
 
 
 
Partenaires

Hébergement Web