php - une - titre page google




Combien de temps durera ma session? (3)

C'est la bonne. La session durera 1440 secondes (24 minutes).

session.gc_maxlifetime  1440    1440

https://code.i-harness.com

Quelqu'un peut-il me dire combien de temps durera ma session à partir des données ci-dessous? - Je ne suis pas sûr de ce que l'on me dit

session.auto_start  Off Off
session.bug_compat_42   Off Off
session.bug_compat_warn On  On
session.cache_expire    180 180
session.cache_limiter   nocache nocache
session.cookie_domain   no value    no value
session.cookie_httponly Off Off
session.cookie_lifetime 0   0
session.cookie_path /   /
session.cookie_secure   Off Off
session.entropy_file    no value    no value
session.entropy_length  0   0
session.gc_divisor  1000    1000
session.gc_maxlifetime  1440    1440
session.gc_probability  1   1
session.hash_bits_per_character 5   5
session.hash_function   0   0
session.name    PHPSESSID   PHPSESSID
session.referer_check   no value    no value
session.save_handler    files   files
session.save_path   /var/lib/php/session    /var/lib/php/session
session.serialize_handler   php php
session.use_cookies On  On
session.use_only_cookies    Off Off
session.use_trans_sid   0   0

En général, vous pouvez dire que session.gc_maxlifetime spécifie la durée de vie maximale depuis la dernière modification de vos données de session ( pas la dernière fois que session_start été appelée!). Mais la gestion de session de PHP est un peu plus compliquée.

Parce que les données de session sont supprimées par un garbage collector qui est seulement appelé par session_start avec une probabilité de session.gc_probability divisée par session.gc_divisor . Les valeurs par défaut sont 1 et 100, de sorte que le garbage collector n'est démarré que dans 1% de tous les appels session_start . Cela signifie que même si la session est déjà expirée en théorie (les données de session ont été modifiées plus de session.gc_maxlifetime secondes auparavant), les données de session peuvent être utilisées plus longtemps que cela.

À cause de cela, je vous recommande d'implémenter votre propre mécanisme de timeout de session. Voir ma réponse à Comment puis-je expirer une session PHP après 30 minutes? pour plus de détails.


Si session.cookie_lifetime vaut 0, le cookie de session reste session.cookie_lifetime jusqu'à la fermeture du navigateur.

EDIT : D'autres ont mentionné le paramètre session.gc_maxlifetime . Lorsque la récupération de place de session se produit, le garbage collector supprimera toutes les données de session qui n'ont pas été accédées plus longtemps que session.gc_maxlifetime secondes. Pour définir le délai de vie du cookie de session, appelez session_set_cookie_params() ou définissez le paramètre PHP session.cookie_lifetime . Si ce paramètre est supérieur à session.gc_maxlifetime , vous devez augmenter la valeur de session.gc_maxlifetime à une valeur supérieure ou égale à la durée de vie du cookie pour vous assurer que vos sessions n'expireront pas.





timeout