Autor Zpráva
rad
Profil *
rad bych vyresil dobu platnosti session
ale moc nevim jak na to rad bych aby napriklad po necinosti 20 minut vyjelo okno z hlaskou kde bude vase session se smaze chcete to ?
a uzivatel si vybere
Nemate nekdo navod nebo nejake reseni na toto ?
diky za rady.
ShiraNai7
Profil
Při spuštění session do ní uložit čas, například takto:
session_start();

if(!isset($_SESSION['create_time'])) {
  // session je nova, ulozime cas
  $_SESSION['create_time'] = time();
}


A dale v kodu muzes pracovat prave s $_SESSION['create_time'].
Pokud chces aby "vyjelo okno" tak to bys musel resit na urovni javascriptu, kompletni reseni ti tu asi nenapisu :)
rad
Profil *
ok a pak dal v kodu bych mel srovnavat co ?

napriklad -
session_start();

if(!isset($_SESSION['create_time'])) {
  // session je nova, ulozime cas
  $_SESSION['create_time'] = time();
}
else
time()>$SESSION['create_time']+    ... a tady prave nevim v jakem formatu bych to mel zadata pro napriklad 20 minut ?



jinak diky asi by pak stacilo zavolat javascript kterym by se potvrdilo nebo ne session destroy
ShiraNai7
Profil
rad:
jinak diky asi by pak stacilo zavolat javascript kterym by se potvrdilo nebo ne session destroy
Pokud bys to chtel v realnem case tak by to nestacilo. Uzivatel muze mit stranku otevrenou klidne i dele nez tech 20 minut.

a tady prave nevim v jakem formatu bych to mel zadata pro napriklad 20 minut
Cas je v sekundach, takze 20*60 ... +1200 sekund.
rad
Profil *
hm diky

zkousim tohle ale zda se jako by se do $SESSION nic neulozilo

na echu mam jen ten cas

 if(!isset($_SESSION['create_time'])) 
  {
  // session je nova, ulozime cas
  $_SESSION['create_time'] = time(); 
  }  
  else {       
        if(time()>($SESSION['create_time']+1200))
         {
          echo time();
          echo "</br></br>";
          echo ($SESSION['create_time']);        
         }
        }
DoubleThink
Profil *
Ukládat čas do session nedává žádný smysl - platnost se počítá od posledního požadavku.
Upozornit uživatele, že jeho session brzo vyprší tak můžeš jen a pouze klientským skriptem (window.setTimeout).
rad
Profil *
ok presto by me zajimalo proc kdyz udelam toto

 if(!isset($_SESSION['create_time'])) 
  {  
  $time = time(); 
  
  $_SESSION['create_time'] = $time;
       
  var_dump($SESSION['create_time']);     
  
  }   
  else 
  {
  var_dump($SESSION['create_time']); 
  }


vysledek je NULL NULL coz je docela podivne.
Davex
Profil
rad:
Chybí to podtržítko u $SESSION.
rad
Profil *
uf diky
pro :

DoubleThink:
Upozornit uživatele, že jeho session brzo vyprší tak můžeš jen a pouze klientským skriptem (window.setTimeout).
takze je nesmysl to delat press session ? a pak volat javascript ? zda se mi to docela dobre reseni.
DoubleThink
Profil *
rad:
Podmínka
if(time()>($SESSION['create_time']+1200))
nedává smysl.
V době, kdy bys chtěl informovat o blížícím se vypršení session, už dávno začalo nových 20 minut platnosti.

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