2
votes

session_start (): échec du décodage de l'objet de session

Je rencontre parfois le problème suivant avec CodeIgniter:

ERREUR - 2019-03-05 19:57:26 -> Gravité: Avertissement -> session_start (): Échec du décodage de l'objet de session. La session a été détruite /system/libraries/Session/Session.php 143

Cette erreur apparaît dans le journal de mon serveur et est impossible à reproduire artificiellement.

J'ai déjà lu les questions SO suivantes:

J'ai également posé la question sur le forum CodeIgniter, mais je n'ai pas eu de réponse.

https://forum.codeigniter.com/thread-72960.html

Voici ma configuration de session (dans application / config / config .php )

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

Des idées sur les racines de ce problème et / ou par où commencer?


3 commentaires

Les sessions sont-elles stockées dans la base de données ou de manière standard? Vous devriez pouvoir le définir dans le fichier de configuration Codigniter.


As-tu vu celui-là? stackoverflow.com/questions/34944892 /…


Oui, j'ai déjà lu cette question, mais les réponses ne m'ont pas beaucoup aidé. Pour le stockage DB, je suppose que la session est stockée dans un fichier ($ config ['sess_driver'] = 'files';)


3 Réponses :


3
votes

Le problème vient de ce paramètre

$config['sess_save_path'] = '/var/www/project/sessions/';

Lorsque vous utilisez le pilote "fichiers", que vous êtes, comme déterminé par ce qui suit

$config['sess_driver'] = 'files';
$ config ['sess_save_path']

doit être défini sur le chemin absolu où les fichiers de session seront stockés. par exemple

$config['sess_save_path'] = NULL;

Lorsqu'il est réglé sur NULL, toutes sortes de choses étranges et imprévisibles se produisent. Le dossier doit également avoir la propriété et les autorisations appropriées.


0 commentaires

1
votes

Dans application / config / config.php, définissez cette valeur:

$config['sess_save_path'] = sys_get_temp_dir();


0 commentaires

8
votes

J'ai rencontré cette erreur lors de l'utilisation de l'option de base de données pour stocker les informations de session. Lorsque vous utilisez cette option, CodeIgniter stocke les données de session dans une table appelée ci_sessions, en particulier dans la colonne 'data'. Par défaut, CodeIgniter crée cette colonne en tant que type de données blob qui a une taille de données maximale de 65 535 octets. Mon application dépassait cette taille et lançait l'erreur. Pour remédier au problème, j'ai changé le type de données en mediumblob qui a une taille maximale de 16 777 215 octets. Ensuite, mon application n'a plus généré l'erreur et a fonctionné comme prévu.


1 commentaires

Je me demandais pourquoi la session se détruisait pour mes utilisateurs. Celui-ci l'a corrigé. Je vous remercie!