174 votes

Comment modifier le délai d'expiration de la session en PHP ?

Je voudrais étendre le délai d'attente de la session en php.

Je sais qu'il est possible de le faire en modifiant le fichier php.ini. Mais je n'y ai pas accès.

Est-il possible de le faire uniquement avec du code php ?

2 votes

1 votes

Related, ceci est dans php.ini, mais je pense que vous pouvez utiliser ini_set comme @matino a dit stackoverflow.com/questions/520237/

0voto

Non. Si vous n'avez pas accès au php.ini, vous ne pouvez pas garantir que les changements auront un quelconque effet.

Je doute que vous ayez besoin d'allonger la durée de vos sessions.
Le délai d'attente est assez raisonnable pour le moment et il n'y a aucune raison de l'étendre.

0 votes

Bonjour Col, j'ai cherché partout sur ce site pour trouver un moyen de vous contacter. J'ai vu que vous m'avez donné quelques suggestions sur mon dernier message qui était fermé (dimanche). J'ai été occupé sur un autre projet et maintenant il est parti. J'aimerais vraiment essayer vos suggestions. Y a-t-il un moyen de retrouver ce que vous avez écrit ?

0 votes

D'après ce que je peux voir, il n'a pas seulement été fermé, mais aussi supprimé. Ces gens n'ont aucun honneur. Oui, votre problème a une solution commune dont je parlais. Je vous écrirai par e-mail. En bref, il s'agissait d'exécuter 2 requêtes supplémentaires pour obtenir ces valeurs prev/next. SELECT id FROM gallery WHERE SortOrder > $currentsortorder LIMIT 1

0 votes

Comme indiqué dans les autres réponses, il existe des solutions à ce problème. Il y a également de bonnes raisons de conserver les sessions pendant de longues périodes (comme le stockage des paramètres d'affichage).

-1voto

Nathan Q Points 1236

Vous pouvez remplacer les valeurs dans le php.ini à partir de votre code PHP en utilisant ini_set() .

5 votes

-1 : session.gc_maxlifetime n'est pas le paramètre qui contrôle la durée de vie de la session. Il peut être matraqué pour fonctionner comme ça si vous définissez session.gc_divisor a 1 mais c'est juste horrible.

1 votes

J'ai vu tellement de réponses sur SO suggérant le contraire, pourquoi ? stackoverflow.com/questions/514155/ stackoverflow.com/questions/9904105/

2 votes

@yannishristofakis : gc_maxlifetime définit l'intervalle après lequel les données de la session sont éligibles pour la collecte des déchets -- si la GC se produit après ce laps de temps, les données de la session seront détruites (avec les paramètres par défaut, cela équivaut à l'expiration de la session). Mais la GC est déclenchée de manière probabiliste à chaque démarrage de session, de sorte qu'il n'y a aucune garantie que la session expire réellement - vous pouvez tracer une courbe de prob en fonction du temps, mais elle ne ressemblera pas à un mur de briques. Ce n'est que la partie émergée de l'iceberg ; voir stackoverflow.com/questions/520237/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X