|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 104 ![]() |
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 |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Inscription : novembre 2004 Messages : 735 ![]() |
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 |
|
|
00
|
|
|
#3 |
|
Membre émérite
![]() |
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 |
|
|
00
|
|
|
#4 | |
|
Membre du Club
![]() Inscription : février 2006 Messages : 104 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 | |
|
Membre du Club
![]() Inscription : février 2006 Messages : 104 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 |
|
Membre émérite
![]() |
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 |
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 104 ![]() |
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) |
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() Inscription : février 2006 Messages : 104 ![]() |
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 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com