2011-05-20 2 views
5

Quelqu'un peut-il expliquer exactement comment faire pour que la session dure plus longtemps en PHP, mais sans utiliser php.ini?Délai de session PHP

J'ai essayé ce qui suit dans .htaccess:

<IfModule mod_php5.c> 
    #Session timeout 
    php_value session.cookie_lifetime 3600 
    php_value session.gc_maxlifetime 3600 
</IfModule> 

J'ai aussi essayé:

ini_set('session.gc_maxlifetime', '3600'); 

Mais aucun d'entre eux semblent fonctionner.

Une idée?

+0

Êtes-vous sûr avec « 3600 »? Je veux dire que vous utilisez citation, avez-vous essayer si ini_set ('session.gc_maxlifetime', 3600); ??? (sans guillemets près de 3600) – bungdito

+0

Plus long que quoi? Avec votre configuration actuelle, votre session devrait durer une heure. – Gumbo

+0

Oui - avec le code que j'ai tapé ci-dessus - qui ne fonctionne pas non plus. Je veux simplement augmenter à la longueur requise ... – user398341

Répondre

8

Ok - je l'ai trouvé le chemin et cela fonctionne - dans le .htaccess j'ai simplement ajouté ce qui suit pour augmenter le délai d'attente à 5 heures:

php_value session.cookie_lifetime 18000 
php_value session.gc_maxlifetime 18000 
7

Sur de nombreux hôtes partagés, toutes les sessions sont stockées au même emplacement. En raison de la façon dont la collecte des ordures fonctionne, cela signifie que les sessions de tout le monde sont supprimées après l'intervalle GC le plus court.

Une solution consiste à faire:

php_value session.save_path "/my/personal/path" 
php_value session.gc_maxlifetime "3600" 

vous pouvez également définir un custom session save handler. Essayez d'abord de modifier votre chemin de sauvegarde, car les gestionnaires personnalisés sont un peu plus compliqués.

Questions connexes