durée de session

Bonsoir,

Eldy dit qu’ne cherchant sur le forum on trouve un post qui explique comment augmenter cette durée, je le trouve pas. Si quelqu’un peut m’aider ?
Par session, je veux dire le temps on l’on peut rester inactif, sans devoir se reloguer…

Merci d’avance

dans « configuration->sécurité » tu vas dans l’onglet « divers » et tu modifies le champ « Timeout des sessions »

Bonjour,
J’étais passé par là avant de demander sur le forum, mais je n’ai pas ce paramètre ( suis en 2.4 )

Seule la 2.6 ou plus permet cette fonction.

Y a-t-il une durée max admissible pour ce paramètre ?
14400", soit 4h ne semble pas fonctionner.

Ou peut-il être « superseeded » par un autre paramètre système (php ou ?) ?

Merci.

Aucune idée ?

J’ai un peu cherché pour comprendre ce time-out, je peux me tromper mais il ne doit pas être pris en compte, du moins en 2.8.1.

Le source de la page de configuration « Sécurité » / « Divers » (…/security_other.php) montre qu’on positionne la variable MAIN_SESSION_TIMEOUT au nombre de secondes qu’on aura choisi.

Une recherche de MAIN_SESSION_TIMEOUT dans les .php de la distrib ne donne rien.
Une recherche de MAIN_SESSION_TIMEOUT sur le net renvoie sur cette page, et on y découvre ce code dans main.inc.php

Ca cause déjà un peu plus… On voit qu’on positionne la variable session.gc_maxlifetime à la valeur choisie.
Par défaut, sur mon install standard de php, session.gc_maxlifetime est à 1440", soit 24’.

Mais le code de main.inc.php de la 2.8.1 est, quant à lui :

Oubliée la variable MAIN_SESSION_TIMEOUT ?

Merci de votre aide SVP.

ta page CVS de référence date un peu, de plus ce site ne nous appartiens pas…
c’est un aspirateur…

en fait MAIN_SESSION_TIMEOUT est récupéré au moment du login, dans la fonction « dol_loginfunction() » qui se trouve dans /lib/security.lib.php et est mis dans un cookie nommé « $_COOKIE[$sessiontimeout] », ce dernier est récupéré dans le « main.inc.php » lors de la création de la session.

Merci Régis !
C’est bien ça.

Mais alors ça complique un peu les choses pour comprendre pourquoi la session Dolibarr expire avant ce qui est mentionné dans « Time out des sessions »…

Ce « session.gc_maxlifetime », il est positionné à 24’ dans php.ini, ça n’interfère pas ?

il existait dans la 2.8 un problème de nom de session lorsqu’on a plusieurs installations de dolibarr au même endroit, ceci est corrigé en 2.9

est-ce ton cas ou utilises-tu qu’un seul dolibarr ?

as-tu vérifié le contenu du cookie de session timeout dans ton browser ?

regis écrit:

Je n’ai qu’une instance Dolibarr.
Je ne trouve pas de réponse à ta question sur le cookie de session timeout. J’utilise Firefox 3.6.10, je ne trouve rien de spécifique dans about:config.

Je vais tester avec un autre browser… pour qualifier éventuellement l’origine du pb à FF/Ubuntu…

il faut aller dans « preferences » puis sur la partie « vie privée » et aller dans « supprimer des cookies » et là tu fais une recherche de DOL_SESSIONTIMEOUT et si tu te mets dessus tu verras le contenu, si tu as personnalisé ton time out dans dolibarr et que tu te reconnectes dessus, tu devrais voir la valeur que tu as déclarée dans ce cookie.

Oui j’ai trouvé dans l’intervalle, j’y vois bien la valeur choisie.

J’ai testé avec un timeout de session à 120 secondes, sur Ubuntu : Chromium, Epiphany, Swiftweasel et sur Windows avec IE6 en remote.

J’ouvre la session et j’attends plus de 2 minutes.
Je clique dans un menu : je ne retourne pas à la login box, mais accède bien à la page du menu.

Si je ne fais rien bien plus longtemps (sans savoir déterminer combien), je suis bien viré de la session…
J’active syslog, y’a peut-être une trace ?

Non : rien dans syslog.

Idem avec une 2.9.0 du paquet .deb de l’espace de téléchargement « stable ».

Time out à 120 secondes non pris en compte. :confused:
(120" pour le test hein, sinon c’est un peu court quand même, OK)

tu as lu le message d’information présent à côté du champ de paramétrage du time out ? il explique le pourquoi.

regis écrit:

Oui, tu as raison… et je mélange un peu tout maintenant.

Le message en question indique :

Et je vois que 1) j’ai mal exprimé mon problème et 2) je prends à l’envers mes tests… :whistle:

Pour revenir à ce que j’ai constaté, en mettant 14400 secondes pour 4h, la session expire avant ces 4h… Ca semble contredire la 1ère phase. Et je ne peux pas pour autant dire au bout de combien de temps la session a expiré, il faudrait que je trouve comme tracer l’événement dans un log PHP…

Désolé de revenir sur le sujet, mais quelque chose m’échappe toujours.

La session ne devrait pas expirer avant le délai (en secondes) qu’on a indiqué.

Or j’ai constaté que c’est le cas sur plusieurs installations (PHP5 / Ubuntu).

Est-ce que d’autres utilisateurs constatent aussi ça ?
Malgré une valeur (très) élevée du time out de session (ex. 4h), celle-ci expire avant la durée souhaitée (ex. ~1h) ?

Merci.

La valeur de Dolibarr peut etre écrasé par celle d’un script sur le serveur qui détruit les fichiers session. A vérifier donc.

/etc/cron.d/php5 sous ubuntu

Merci eldy ! c’est bien là que ça se passe !..

Il semble que ce soit une particularité de Debian et ses dérivés comme ubuntu. On trouve en effet une explication sur php.net, et notamment :

Sur un système « standalone », on peut commenter la ligne de la crontab, ou sinon jouer sur le session.gc_maxlifetime du /etc/php5/apache2/php.ini, par défaut positionné à 24 minutes.

Encore merci pour ta réponse eldy ! :laugh: