Garder un session ouverte quand utilisateur ouvre autre fenetre

Résolu
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010 - 30 nov. 2009 à 22:39
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010 - 4 déc. 2009 à 15:09
Bonsoir à tous,

J'ai developpé un intranet pour ma société, et je suis bloqué sur un problème au niveau des sessions utilisateurs. J'ai créer des modules d'authentification qui sont fonctionnels, mais je souhaiterai juste savoir comment faire en sorte que la session ouverte puisse etre récupéré quand on ouvre une seconde occurence du site dans une nouvelle fenetre du navigateur. Est-ce-que je suis obligé de passer par les cookies, c'est à dire d'insérer un identifiant de session dedans et de tester à chaque ouverture de l'intranet si la session est active par rapport à l'id que je récupère dans celui-ci ? ou est-ce-qu'il existe une autre solution ?
merci d'avance à vous et bonne soirée

6 réponses

neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
1 déc. 2009 à 13:32
Hello,

Le gestionnaire de sessions de PHP utilise déjà les cookies, par défaut. Inutile donc de manipuler des cookies en plus.
Ce qu'il y a, c'est que tu n'as pas dû configurer les cookies du gestionnaire de sessions. Tu peux pour cela utiliser la fonction session_set_cookie_params().
A priori, quand on ouvre une nouvelle fenêtre de son navigateur (ou un nouvel onglet) la session doit être trouvée et restaurée, sauf que par défaut, la durée de vie du cookie est 0 : cela signifie qu'il est supprimé à la fin de la session (fermeture du navigateur), ou non récupéré lors de l'ouverture d'une nouvelle fenêtre.
Un petit coup d'oeil à la doc concernant la configuration par défaut des sessions ne ferait pas de mal ;)

Pour changer la configuration des cookies du gestionnaire de sessions, tu peux donc, comme indiqué plus haut, utiliser la fonction session_set_cookie_param() ou définir chaque directive une à une (ou uniquement celles dont tu as besoin) avec ini_set() :
ini_set('session.cookie_lifetime', 3600); // Durée de vie du cookie 1h


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
2
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
30 nov. 2009 à 22:49
Salut,

Comment gères-tu les sessions actuellement ?
En fait, tu n'as pas besoin de gérer les cookies, le gestionnaire de sessions de PHP s'en charge, pour peu qu'il soit configuré pour les utiliser.
Pour conserver la session utilisateur lors de l'ouverture d'une nouvelle fenêtre, effectivement, il est indispensable d'utiliser des cookies. A moins que l'ouverture de cette nouvelle fenêtre ne se fasse suite à un clic sur une page du site, auquel cas il est possible de passer l'identifiant de session dans l'URL, mais bon, c'est moins élégant et moins sécurisé.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010
1 déc. 2009 à 13:11
Bonjour,

Merci pour ta réponse. Actuellement, je gère les sessions uniquement avec Php, je fais un "session_start()" à l'authentification. En fait ce que je voudrai c'est que l'authentification soit conservée si j'ouvre une autre fenetre du navigateur, mais pas forcément en cliquant depuis la fenetre déjà ouverte. Donc si je comprend bien, dans mon cas, je doit utiliser les cookies ? c'est à dire d'insérer un identifiant de session dedans et de tester à chaque ouverture de l'intranet si la session est active par rapport à l'id que je récupère dans celui-ci ?
Merci à toi !
0
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010
4 déc. 2009 à 14:35
Un grand merci !!! Je regarde tout cela et vais essayer de suite ^^
Désolé pour le retard de la réponse, et merci pour la votre !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010
4 déc. 2009 à 14:50
Cependant j'aurai une autre question : Comment la page sait-elle que la session est ouverte ? meme avec ce parametre, la session n'est pas ouverte quand j'ouvre une seconde fenetre. Dois-je créer un code qui doit regarder si l'on récupère un cookie ou quelque chose dans le genre ?
0
aforpien Messages postés 118 Date d'inscription lundi 6 novembre 2000 Statut Membre Dernière intervention 12 mai 2010
4 déc. 2009 à 15:09
Merci c'est bon j'ai trouvé :)
0