Outils pour utilisateurs

Outils du site


php:sessions

Sessions

Augmenter la durée de la session

Spécifier le temps d'expiration des données de la session juste avant d'appeler la commande session_start().

// Démarrer une session de 2h ( = 120 minutes = 7200 secondes)
$nbMinutes=120;
ini_set('session.gc_maxlifetime',$nbMinutes*60);
ini_set('session.cache_expire',$nbMinutes);
session_start();

Changer le chemin de sauvegarde des sessions

LA solution à tous mes problèmes d'expiration de session

Malgré les temps d'expiration spécifiés ci-dessus, mes sessions continuaient à être expirées prématurément.

Il semble que si d'autres scripts PHP tournent sur le même serveur avec d'autres spécifications, c'est la durée la plus petite qui est utilisée pour effacer les sessions considérées comme trop vieilles.

Pour éviter cela, il faudrait que les sessions d'un script soient stockées séparément, comme le conseille ce commentaire sur StackOverflow.

Par exemple, sur mon serveur les sessions sont stockées dans /var/lib/php5. Pour ajouter un sous-dossier marc je fais ceci avant l'appel de session_start() :

$sessionSavePath = ini_get('session.save_path') . '/marc';
if(!is_dir($sessionSavePath)){
    mkdir($sessionSavePath);
}
ini_set('session.save_path', $sessionSavePath);
php/sessions.txt · Dernière modification: 2020/04/18 08:46 par marclebrun