Forums

Lifetime of session variables (Durée de vie des variables de session)

jmgroud 12 Apr, 2020
English
HelloI created session variables when connecting a user in frontend, examples:
\ GApp :: session () -> set ("useractu_chadd_lire", $tabval);
\ GApp :: session () -> set ("sess", $sess);
All this works properly for a certain time (I don't know exactly but for several tens of minutes).
At some point, these variables disappear from the session while the frontend user is still connected.
What's the problem ? Maximum lifespan? An action on my part that would make them disappear?
How can I make all session variables always available as long as the user remains logged in?
Thank you in advance for your answers.
Jean Marie

Français
Bonjour
J'ai créé des variables de session lors de la connexion d'un utilisateur en frontend, exemples :
\GApp::session()->set("useractu_chadd_lire",$tabval);
\GApp::session()->set("sess",$sess);
Tout ceci fonctionne correctement pendant un certain temps (je ne sais pas exactement mais pendant plusieurs dizaines de minutes).
A un certain moment, ces variables disparaissent de la session alors que l'utilisateur en frontend est toujours connecté.
Quel est le problème ? Une durée de vie maximum ? Une action de ma part qui les ferait disparaître ?
Comment faire pour que toutes les variables de session soient toujours disponibles tant que l'utilisateur reste connecté ?
Merci d'avance pour vos réponses.
Jean-Marie
GreyHead 12 Apr, 2020
1 Likes
Hi jmground,

In your site admin there is a setting for the User session. IIRC by default it is set to 15 minutes - that is if the user is inactive for 15 minutes then they will be logged out and the session ended. I don't think that there is any other way for the session data to be lost unless it is over-written.

Bob
jmgroud 12 Apr, 2020
English
Hello Bob
Thank you for your response
You are right about the maximum time duration of the administration session.
This works very well and I am automatically disconnected if I do not touch the administration of the site during the number of minutes indicated in the parameter.

But my problem is not a duration of administration but a duration of session variables in frontend.
When a user logs in, I launch a read operation in the Joomla database at the "fields" and "fields_values" tables to retrieve user configuration parameters ...
As soon as I read this information, I create session variables to keep these parameters in memory and then use them to manage my displays and access rights to certain site functionalities: Use of instructions "\GApp::session()->set("variable to create", $value);"
Then, in the different forms, I get the content of these variables and this works perfectly but only for a certain time ...

Example of PHP recovery code:
<? php
echo "<h6> Set of session variables 'sess' </h6>";
$sess = \GApp::session()->get("sess");
pr($sess);
?>
After a certain time, this session variable disappears while the user remains connected in frontend.

Français
Hello Bob
Merci pour ta réponse.
Tu as raison au niveau du temps maximum de durée de la session d'administration.
Ceci fonctionne très bien et je suis automatiquement déconnecté si je ne touche pas à l'administration du site pendant le nombre de minutes indiquées dans le paramètre.

Mais mon problème n'est pas une durée d'administration mais une durée de variables de session en frontend.
Lorsque je me connecte, je lance une opération de lecture dans la base Joomla au niveau des tables "fields" et "fields_values" pour récupérer des paramètres de configuration de l'utilisateur...
Dès la lecture de ces informations, je créé des variables de session pour garder en mémoire ces paramètres et pour ensuite les utiliser pour gérer mes affichages et droits d'accès à certaines fonctionnalités du site : Utilisation des instructions "\GApp::session()->set("variable à créer",$valeur);"
Ensuite, dans les différents formulaires, je récupère le contenu de ces variables et ceci fonctionne parfaitement mais uniquement pendant un certain temps...

Exemple de code PHP de récupération :
<?php
echo "<h6>Ensemble des variables de session 'sess'</h6>";
$sess = \GApp::session()->get("sess");
pr($sess);
?>
Au bout d'un certain temps, cette variable de session disparait alors que l'utilisateur reste connecté en frontend.
This topic is locked and no more replies can be posted.