Autor Zpráva
rroommaann
Profil
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
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).
fewllet
Profil *
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í :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0