Autor Zpráva
ValentinMichaelSmith
Profil *
Dobrý den,
nevíte někdo, kde se dá nastavit za jak dlouho vyprší session proměnné? Mám vyrobenou autentifikaci pomocí sessions a potřeboval bych aby to uživatele neodhlašovalo po půl hodině, ale ten limit nastavit na větší časový úsek....

diky za nakopnutí správným směrem
matak
Profil
http://interval.cz/clanky/zaciname-pouzivat-sessions-v-php/
llook
Profil
Slouží k tomu konfigurační volba session.gc_maxlifetime. Podle manuálu je měnitelná všude (PHP_INI_ALL), takže třeba ini_set:
ini_set('session.gc_maxlifetime', 24 * 60 * 60); // session vyprší po 24 hodinách
Pak tě může zajímat, že cookie nesoucí SID má svoji vlastní životnost a ta se nastavuje funkcí session_set_cookie_params. Zpravidla bývá nejvhodnější to nechat nastavené na nule, pak cookie žije do zavření prohlížeče.
Stinky
Profil *
No jo, ale co když nemám k php.ini přístup?
souki
Profil
session_cache_expire($cas); // $cas v minutách
llook
Profil
No jo, ale co když nemám k php.ini přístup?
Jak píšu, tuto volbu můžeš nastavit kdekoli. Takže třeba funkcí ini_set, přímo v tom skriptu. Přístup do php.ini nepotřebuješ.

Má se to totiž tak, že některé volby jdou nastavit nejen v php.ini, ale i zvlášť pro každý adresář nebo dokonce i kdykoli funkcí ini_set (přímo za běhu skriptu). V manuálu jsou poznačené takto:
PHP_INI_SYSTEM - jedině php.ini
PHP_INI_PERDIR - lze nastavit různě pro různé adresáře (v souboru httpd.conf nebo .htaccess)
PHP_INI_ALL - lze nastavit kdekoli. php.ini, .htaccess, registry Windows, nebo funkce ini_set().

souki
Jestli to dobře chápu, tak session_cache_expire nastavuje něco úplně jiného než životnost session.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0