Bonjour,

Un blocage concernant les sessions à propos de leur gestion m'a atteint.

Le problème n'est pas de créer une session, ce qui est trivial, mais de récupérer les données stockées dans le fichier de sauvegarde des sessions créé par php dans le dossier session.save_path, après que la session soit expirée (après 24 min par défaut).

Il y a bien un gestionnaire de session de php session_set_save_handler, seulement je ne me suis toujours pas mis à la POO, donc inutile de dire que je ne comprends pas cette fonction, et que cette solution ne m'est pas accessible.

En somme, lors du démarrage du script, une session est démarrée via session_start(), puis au gré d'opérations effectuées par l'internaute, des données varient dans une variable $_SESSION['x']. Pour conserver les diverses modifications résultant des opérations effectuées sur la variable $_SESSION['x'], l'internaute peu cliquer sur un bouton qui fait appel à une fonction de sauvegarde.
Seulement, si l'interface chaise/clavier s'absente pendant plus de 24 min, et qu'il n'a pas pensé à sauvegarder le résultat de ses opérations, à son retour, elles sont perdues puisqu'en interagissant à nouveau avec le script, ce dernier après avoir passé le ramasse miette, nettoie le dossier session.save_path et démarre une nouvelle session !

En fait, je n'arrive pas à trouver d'informations pour me permettre de dire à php, avant qu'il démarre une session, de lire les données du fichier temporaire de session.save_path de la dernière session pour repeupler ses variables $_SESSION de la nouvelle session avec les données que contenaient l'ancienne session.

Probablement est ce tout simple, mais je bloque sévèrement là !
Si quelqu'un pouvait me mettre sur la voie, ce serait fort sympathique. Merci

1 réponse


caoua
Auteur
Réponse acceptée

Bon, le déblocage a pu arriver !
Tout simplement avec $_SESSION = session_decode(file_get_contents('file_en_question'));, j'ai pu repeupler la variable $_SESSION !