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 20/07/2011, 14h42   #1
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Par défaut Session jusqu'à la fermeture du nav.

Salut,

Je passe par le fichier php.ini pour fixer la durée des sessions avec ces variables:
session.gc_maxlifetime= 17760085
session.cookie_lifetime = 17760085

Pour utiliser les sessions, je procède comme ceci:

Code :
1
2
3
4
5
6
7
 
session_start() ;//Dans toutes les pages.
 
//Après vérification login/mot de passe:
// 1 row found exactly, we have the user!
$_SESSION['user'] = $row_user["user_login"];
$_SESSION['user_id'] = $row_user["user_id"];
Donc si les utilisateurs ferment leurs navigateurs, ils retrouvent leurs sessions précédentes et n'ont pas besoin de se ré-identifier.

Maintenant, je voudrais ajouter une checkbox qui supprime la session à la fermeture du navigateur.

J'ai ajouté ceci:
session_set_cookie_params(0) ;
Mais les sessions sont toujours active si je ferme/relance le navigateur.

Comment je peux modifier la durée d'une session pour qu'elle s’arrête à la fermeture du navigateur ?

Merci,
Vincent.
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h21   #2
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

comme ta question m'intéresse j'ai un peu cherché sur le net, et je pense que si tu regardes avec l'evènement onbeforeunload tu pourrais faire en sorte que tes session soient supprimé avec la fonction session_destroy.

Je continue de chercher pour voir s'il y a pas plus simple

en effet il y a plus simple, regarde session.cookie_lifetime. Cela permet de définir la duré de vie d'un cookie (et du coup de la variable session) après la fermeture du navigateur.

J'ai trouvé sur ce post
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 20/07/2011, 15h59   #3
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Citation:
Envoyé par Retrokiller069 Voir le message
Bonjour,

comme ta question m'intéresse j'ai un peu cherché sur le net, et je pense que si tu regardes avec l'evènement onbeforeunload tu pourrais faire en sorte que tes session soient supprimé avec la fonction session_destroy.

Je continue de chercher pour voir s'il y a pas plus simple

en effet il y a plus simple, regarde session.cookie_lifetime. Cela permet de définir la duré de vie d'un cookie (et du coup de la variable session) après la fermeture du navigateur.

J'ai trouvé sur ce post
J'ai essayé ceci avant le session_start() et ca ne marche pas non plus

Code :
1
2
3
4
if((isset($login) && ($remember != "checked"))) {
  ini_set('session.cookie_lifetime',(0));
  session_cache_expire(0) ;
}
defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 16h27   #4
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
et en faisant ceci est ce que ca marche ?

Code :
<?php setCookie('PHPSESSID', '', (time() - 3600, '/'); ?>
PHPSESSID = est le nom du cookie qui contient la variables session.
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 17h09   #5
Membre habitué
 
Inscription : mai 2004
Messages : 383
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 383
Points : 129
Points : 129
Citation:
Envoyé par Retrokiller069 Voir le message
et en faisant ceci est ce que ca marche ?

Code :
<?php setCookie('PHPSESSID', '', (time() - 3600, '/'); ?>
PHPSESSID = est le nom du cookie qui contient la variables session.
Non, ça ne marche pas
J'ai essayé ceci:
Code :
1
2
 
setCookie(''.session_name().'', session_id(), (time() - 3600), '/');
Même ceci ne marche pas !
setcookie(session_name(),session_id(),7777777);

defacta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 17h12   #6
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Citation:
Envoyé par Retrokiller069 Voir le message
comme ta question m'intéresse j'ai un peu cherché sur le net, et je pense que si tu regardes avec l'evènement onbeforeunload tu pourrais faire en sorte que tes session soient supprimé avec la fonction session_destroy
Bon ben je pense qu'il ne te reste plus qu'à chercher une solution avec ceci, si tu trouves je suis intéressé ^^
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/07/2011, 18h21   #7
Membre habitué
 
Homme Lucas GAUTHERON
Lycéen
Inscription : décembre 2008
Messages : 106
Détails du profil
Informations personnelles :
Nom : Homme Lucas GAUTHERON

Informations professionnelles :
Activité : Lycéen

Informations forums :
Inscription : décembre 2008
Messages : 106
Points : 145
Points : 145
Ce serait plutôt :
Code :
setcookie(session_name(), session_id(), 0, '/');
lucas74 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h43.


 
 
 
 
Partenaires

Hébergement Web