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 21/04/2006, 16h10   #1
Membre du Club
 
Inscription : février 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 104
Points : 68
Points : 68
Par défaut [Sécurité] Session_id - lifetime

J'aimerait savoir comment est défini la durée de vie d'une session_id() ?

Est-ce le serveur qui renvoi cette id, ou est-elle propre au navigateur en local ?

Le problème est que j'ai codé tout un site, mais après des tests avec des utilisateurs débutant (donc forcément très lents), doivent encoder une commande dans un gros formulaire (entre 100 et 600 produits affichés) donc ils passent au moins 5 a 10 minutes à le faire.

Un peu de structure du site pour comprendre le problème :
Quand l'utilisateur se log, la valeur de la session_id() est stocké dans la base sql de la fiche du client, donc une fois qu'il se log et que le user et pass sont ok il regarde dans la bdd si l'id est la même auquel cas, il la change.
Ensuite dans chaque page qui nécessite une certaine sélection, l'utilisateur actuel (login) est stocké dans une variable de type $_SESSION afin de retrouver la fiche de l'utilisateur et pouvoir regarde la Session_id stockée si c'est les mêmes, ça passe l'utilisateur a accès sinon il est invité à se relogguer.

Retour au problème, après ces 5 a 10 minutes min d'encodage, l'utilisateur est invité à se relogger (donc la session a expiré) le site est pleinement fonctionnel pour un utilisateur assez rapide donc les pages sont bonne et c'est juste ce controle qui ne passe pas, je ne voit donc comme problème cette variable de session qui seraient détruite trop tôt d'où ma question si ce temps de destruction était réglé localement ou coté serveur.

Merci d'avance
psykbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2006, 16h13   #2
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Pour répondre à ta question le session_lifetime est défini par le php et n'est pas du tout lié au navigateur ( si ce n'est pour le cookie )

Pour modifier la valeur de ce paramètre tu peux regarder dans le php.ini

Pierre
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2006, 16h16   #3
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
Mais je te conseille plutot l'utilisation de la fonction session_cache_expire(): http://fr3.php.net/manual/fr/functio...che-expire.php
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2006, 16h16   #4
Membre du Club
 
Inscription : février 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 104
Points : 68
Points : 68
Citation:
Envoyé par FCYPBA
Pour répondre à ta question le session_lifetime est défini par le php et n'est pas du tout lié au navigateur ( si ce n'est pour le cookie )

Pour modifier la valeur de ce paramètre tu peux regarder dans le php.ini

Pierre
ok c'est bien ce qu'il me semblait mais je ne voulait pas déranger l'hébergeur pour rien
psykbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2006, 16h19   #5
Membre du Club
 
Inscription : février 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 104
Points : 68
Points : 68
Citation:
Envoyé par Yobs
Mais je te conseille plutot l'utilisation de la fonction session_cache_expire(): http://fr3.php.net/manual/fr/functio...che-expire.php
Je viens de voir grâce à ça qu'elle était fixée a 180. Ce temps peut-il être en secondes ou obligatoirement en minutes ?
psykbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2006, 16h20   #6
Membre émérite
 
Avatar de Yobs
 
Inscription : avril 2004
Messages : 675
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2004
Messages : 675
Points : 808
Points : 808
Envoyer un message via MSN à Yobs
Oui mais tu peux définir toi même ta valeur, regarde dans l'exemple elle est définie à 30 minutes.
__________________
Chaque problème a une solution, mais il est plus facile de répondre si le problème est correctement renseignés
Yobs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2006, 16h44   #7
Membre du Club
 
Inscription : février 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 104
Points : 68
Points : 68
Je ne suis pas certain que celà vienne de là car le message correspondant au else de la ligne

if (!empty($_SESSION['currentuser']) && $_SESSION['useractive'] == 1 && !empty($_SESSION['userssid']) && $_SESSION['zone'] == "cmd")

En groz donc si la variable session currentuser ou useractive (valeur défini une fois qu'on se log) ou si la variable session id est vide ou la session de zone est vide (cette vérification est sur les 3/4 du site) donc je pense que le problème ne peut que venir de là car elle peuvent naviguer sur 3/4 pages du site et apparement quand elles encodent, à la fin ça affiche le message correspondant ?

Quel est votre avis parcque là je deviens fou; je vais refaire le test 'grandeur nature' sur le pc là ou ça ne fonctionnait pas en attendant (maintenant le session expire est fixé a 3600 donc meme si c'est en seconde ça nous laisse 1H). Si je voit que ça ne marche pas je croit que je pourrait virer les !empty car ça controle après les sessions id (celle de la base et l'actuelle)
psykbe est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/04/2006, 18h02   #8
Membre du Club
 
Inscription : février 2006
Messages : 104
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 104
Points : 68
Points : 68
Après test, ce problème ne survient que sous internet explorer (quelle merde je sait) malheureusement je n'ai pas le choix donc les tests étant fait sous firefox tout roulait et roulent toujours. Y a-t-il un gestion fondamentalement différente des sessions par IE ou firefox ??? car j'ai ma page de test avec les variables et après X minute (3-4-5), le variable de sessions sont vidées

J'ai essayé de changer les paramètres de sécurité (ignorer la gestion automatique des cookies accepter accepter et accepter les cookie de la session) mais rien n'y fait le variable de sessions se vident sous IE hors il n'y a aucun unset ou destroy sur le site
psykbe 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 10h52.


 
 
 
 
Partenaires

Hébergement Web