| 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: 14 let
|
|||
0