Autor | Zpráva | ||
---|---|---|---|
rroommaann Profil |
#1 · Zasláno: 26. 3. 2010, 18:55:45
prosím o objasnění SESSION. A to především doby platnosti. Používám pro přihlášení že se zapíše SESSION a pak overuje jesti je platne. Session samozrejme po "nake" dobe "vyprcha" a tim padem se system odhlasi, ALE
Jaký je rozdíál mezi? ini_set('session.gc_maxlifetime',300); //300 = 5minut ini_set('session.cache_expire', 30) ?? Dale kdyz jednou zapisu SESSION budeplatit treba 20min a pak konec? Jak ji obnovim? Dejme tomu pokazde kdyz uzivatel provede obnoveni stranky nebo prejde na jinou? nastavil jsem ini_set('session.cache_expire', 30) to znamena 30sekund? nebo minut? děkuji! |
||
AM_ Profil |
#2 · Zasláno: 27. 3. 2010, 10:28:19
SESSION se maže po zvolené době neaktivity, to znamená, pokud k ní řekněme 20 minut není nijak přistupováno. O obnovování se starat nemusíš, děje se to samo právě načtením jakékoli stránky, ze které voláš session_start(). Jakmile vyprší, prostě přestane existovat; v podstatě to také řešit nemusíš a uživatele to stejně odhlásí, ale můžeš udělat nějakou pěknou hlášku typu "byli jste příliš dlouho neaktivní" - bohužel blbě se detekuje, jestli nějaká session vypršela, nebo vůbec žádná neexistovala.
Co přesně znamenají výše uvedené direktivy a jestli jsou v minutách či sekundách si snadno vygooglíš, taky to z hlavy nevím. Jen dodám, že SESSION visí na dvou věcech - identifikační cookie u uživatele a data uložená na serveru, a obě tyto věci mohou vypršet. Cookie např. lze nastavit tak, aby se mazala hned při uzavření prohlížeče (lifetime 0). |
||
Časová prodleva: 2 roky
|
|||
fewllet Profil * |
#3 · Zasláno: 13. 3. 2012, 19:29:12
Hoj toto jsem jednou řešil celý den, lidé se mi po 24 min nečinosti odhlašovali z aplikace proto jsem použil tento script který opravdu jako jediný funguje:
$Lifetime = 3600; $Seperator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/"; $DirectoryPath = dirname(__FILE__) . "{$Seperator}SessionData"; is_dir($DirectoryPath)or mkdir($DirectoryPath, 0777) ; if (ini_get("session.use_trans_sid") == true) { ini_set("url_rewriter.tags", ""); ini_set("session.use_trans_sid", false); } ini_set("session.gc_maxlifetime", $Lifetime); ini_set("session.gc_divisor", "1"); ini_set("session.gc_probability", "1"); ini_set("session.cookie_lifetime", "0"); ini_set("session.save_path", $DirectoryPath); session_start(); pro session.save_path si vytvořte adresář kde potřebujete a nastavte atributy na 777. Všem co to byt jen o hodinu prodlouží život hodně štěstí :) |
||
Časová prodleva: 11 let
|
0