Autor Zpráva
SwimX
Profil
Dobrý den,
mám nastavenou platnost sessiony na 20minut.
Uživatel přidá zboží do košíku: já si uložím čas přidání do sessiny start.
JS mu potom hlídá, zda už uplynulo 20 minut, zahlásí možnou ztrátu při neaktivitě a pak mu ohlásí, že nákup je zrušen.

Co když do košíku něco přihodí (do sessiony kosik se přidá další položka), začíná odpočet 20minut znovu?

A co když změní nějakou jinou sessionu (např pocet_na_stranku), každá sessiona řeší svuj lifetime?


Děkuji za odpověd
temistokles
Profil
Ak "sessionou" myslíš premennú v $_SESSION, tak doba platnosti sa rieši globálne pre celú sešn, zmena inej premennej teda predĺži život všetkých premenných pre daného klienta.
Lamicz
Profil
Když se do session něco zapíše, timer se resetuje a začíná odpočet znovu. Košík v session má minimálně jednu nevýhodu - nejde na něj rozumně udělat odkaz, což se v praxi dost často používá. Chce to ten obsah někam po určitou dobu "odložit".
IMHO by mělo jít např. přes AJAX dělat requesty při neaktivitě a tím tu session prodlužovat aby neexpirovala (samozřejmě se to musí opatrně taky kvůli bezpečnosti), o tom sám přemýšlím. Minimálně by to mělo jít když by session byla např. v DB.
temistokles
Profil
Lamicz:
Košík v session má minimálně jednu nevýhodu - nejde na něj rozumně udělat odkaz

O akom odkaze hovoríš?


Minimálně by to mělo jít když by session byla např. v DB.

Načo?
SwimX
Profil
temistokles:
děkuji, to jsem chtěl slyšet. A můžu někde zjistit kolik chybí do expirace?

Lamicz:
Nechci prodlužovat sessinu, mě to vyhovuje, že ho to za chvíli odpálí.
odkaz? nerozumím, odkaz je: /kosik/ a vypíše se mu ze sessiony.
Těžko bude po icq někomu posílat odkaz na svuj košík, to je dosti nesmyslné.
AM_
Profil
SwimX:
děkuji, to jsem chtěl slyšet. A můžu někde zjistit kolik chybí do expirace?
Pokud vím, tak při každém volání session_start() (který bývá na začátku všech skriptů), tedy každém znovunačtení stránky, se odpočítávání vynuluje - není to tedy potřeba na straně PHP řešit, prostě každá akce, která vyvolá request na server, signalizuje aktivitu uživatele.
Vyprší taková sessiona, která po dobu svého timeoutu nebyla nijak použita (čtení, zápis, ba ani session_start).
SwimX
Profil
AM_:
V tom případě se asi uplně vyprdnu na dělání JS odčítání času, protože při každém reloadu stránky by začalo odznova. Jenom někam do košíku prostě napíšu hlášku, že pokud bude 20minut neaktivní, tak se mu košík vynuluje.

Děkuji a vlákno zamykám, odpověď byla myslím vyčerpávající.
Toto téma je uzamčeno. Odpověď nelze zaslat.