[PHP] Question sur les sessions et leur expiration

Question sur les sessions et leur expiration [PHP] - PHP - Programmation

Marsh Posté le 24-03-2017 à 17:26:03    

Bonjour,
 
J'ai développé un intranet personnel sur lequel j'utilise des sessions PHP.
J'ai remarqué un comportement différent depuis le changement du serveur d'hébergement (qui au passage à fait passé PHP de 5 à 7).
 
Sauf erreur de ma part, avant la session expirait que si le client ne faisait aucune activité pendant la durée du timeout.
Depuis le basculement par contre, mes sessions durent la durée du timeout. C'est à dire qu'un utilisateur va travailler sur l'intranet puis au bout du temps du timeout, sa session va expirer même si il était toujours en train de faire des requêtes.
 
Est-ce que les sessions ont changés de comportement entre php5 et php7 ?
J'ai comparé les php.ini mais ils sont identiques pour les variables de sessions.
 
J'avoue ne pas trop savoir pourquoi cela réagit comme ça.
 
Merci à toutes suggestions
 :hello:


Message édité par clockover le 24-03-2017 à 17:27:03
Reply

Marsh Posté le 24-03-2017 à 17:26:03   

Reply

Marsh Posté le 25-03-2017 à 09:41:06    

Bonjour,  
Tu as lu des choses de ce genre :  
http://stackoverflow.com/a/8311400/461444
http://stackoverflow.com/a/1270960/461444
http://php.net/manual/fr/session.configuration.php
?
 
Ca ne pourrait pas venir de ton code aussi, un truc un peu buggé qui ferait un regenerate ou un destroy de la session à partir de mauvais critères ?
Si l'appli est trop grosse pour trouver, essaye de voir avec un projet de test aussi minimaliste que possible.
 
En PHP 7 je ne pense pas que la gestion par défaut des sessions a été modifiée pour introduire un truc aussi fantaisiste que "supprime la session au bout du lifetime, même si elle est toujours active". Mais en PHP tout est possible...


---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
Reply

Marsh Posté le 26-03-2017 à 06:36:15    

Bonjour,
 
Merci pour ton retour.
Effectivement j'ai déjà épluché ce genre de conversation.
 
Je n'ai pas de regenerate dans mon code mais peut-être qu'une autre commande/action l'appelle ou pourquoi pas la destroy.
Je vais commencer par mettre un suivi de la session un peu plus poussé pour voir effectivement.
 
Je reviens avec plus d'infos!

Reply

Marsh Posté le 28-03-2017 à 00:51:48    

Bon test tout simple.
 
J'ai un JS qui appelle en AJAX toute les 60 secondes une fonction à la con précédé de session_start() bien sur:  

Code :
  1. echo date('H:i').' - '.session_id().'<br />';


 
Résultat:
21:08 - 9gf6uvgokgai0hrmugei0hlh41
[...]
00:28 - 9gf6uvgokgai0hrmugei0hlh41
00:29 - pkpq4kiiu94favd4vta8il0ot4
 
Il a changé de session ID au bout de 3h20  
php.ini -> session.gc_maxlifetime = 14400 (soit 4h)


Message édité par clockover le 28-03-2017 à 00:52:38
Reply

Marsh Posté le 31-03-2017 à 14:24:22    

Visiblement c'est plus un soucis serveur qu'autre chose.
J'ai fait des tests sur un autre en 7.0 également et visiblement le soucis disparaît.
Je suspect un soucis de lecture sur les fichiers de sessions ce qui les fait expirer quoi qu'il arrive. Enfin c'est juste une intuition pour l'instant.
 
Je fais toujours mes tests.


Message édité par clockover le 31-03-2017 à 14:29:50
Reply

Marsh Posté le 22-04-2017 à 00:23:39    

En changeant de serveur soucis corrigé. J'ignore la cause exactement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed