Autor | Zpráva | ||
---|---|---|---|
leonek Profil |
#1 · Zasláno: 16. 4. 2011, 18:19:58
Zdravím. Mám problém s dobou trvání session. V jedom souboru mám toto:
<?php ob_start(); ini_set('session.gc_maxlifetime', 24 * 60 * 60); ini_set('session.cache_expire', 24 * 60 * 60); ini_set('session.cookie_lifetime', 24 * 60 * 60); session_set_cookie_params(24 * 60 * 60); session_start(); ?> Bohužel při přepínání mezi dvěma stránkami se mi tak jako tak po půl hodině session smaže. Pravděpodobně tam bude chybět ještě nějaký parametr nebo nastavuji špatně? |
||
Časová prodleva: 3 dny
|
|||
Jozin Profil * |
#2 · Zasláno: 19. 4. 2011, 11:04:31
Ahoj,
nebudu ti teda radit s tímto, protože takhle jsem to nikdy nedělal a tak nevím jistě, co se má/nemá nastavit, ale já to vždy řešil nějak takto: <?php session_start(); if(isset($_SESSION['time']) && $_SESSION['time'] > time()) //pokud session existuje a zároveň je čas do odhlášení větší než aktuální čas { $_SESSION['time'] = time()+(24*60*60); //posunu čas zase o jeden den dopředu echo "Jsi přihlášený"; } else { session_destroy(); //zlikviduju session echo "Jsi odhlášený"; } ?> snad ti to pomůže, Jozin. |
||
leonek Profil |
#3 · Zasláno: 19. 4. 2011, 11:40:42
Děkuji :) Ale mě jde spíše o jednu konkrétní proměnnou v košíku - $_SESSION['kosik']. Potřebuju aby v této proměnné vydrželi data na serveru alespoň jeden den.
Problém nastává hlavně když přejdu na jinou stránku a jsem na ni min 30 minut. Pak když se vrátím do košíku tak je prázdný. Nevím jak by tvoje řešení šlo aplikovat na tuto proměnnou aby zároveň nezpůsobila její destrukci při úpravě hodnoty. |
||
Jozin Profil * |
#4 · Zasláno: 19. 4. 2011, 13:36:52
<?php //kosik.php session_start(); if(isset($_SESSION['time']) && $_SESSION['time'] > time()) //pokud session existuje a zároveň je čas do odhlášení větší než aktuální čas { $_SESSION['time'] = time()+(24*60*60); //posunu čas zase o jeden den dopředu var_dump($_SESSION['kosik']); //nahradí se výpisem košíku } else { session_destroy(); //zlikviduju session echo "Košík je prázdný"; } //příklad přidávání věcí do košíku $_SESSION['kosik'][] = $item; //$item je nejspíš pole s informacemi o věci (budeš muset vyřešit duplicitu tzn jedné věci například 5 kousků) ?> Pokaždé, když příjde člověk do košíku, tak se jeho doba existence prodlouží o jeden den. |
||
Časová prodleva: 13 let
|
0