PHP - kontrola existencie session

Programovacie jazyky, rady, poradňa...
Holubar
Darca
Darca
Používateľov profilový obrázok
Príspevky: 3894
Registrovaný: 24 feb 2005, 21:26
Bydlisko: Senec
Kontaktovať používateľa:

PHP - kontrola existencie session

Príspevok od používateľa Holubar »

Mam eshop, kde si ukladam polozky vlozene do kosika do db. Do stlpca zakaznik_id davam v pripade, ze sa jedna o prihlaseneho pouzivatela jeho user_id, pre anonymnych session_id.

Priebezne sledujem opustene kosiky a pri anonymnych pouzivateloch by som ich rad postupne aj mazal, no chcem si byt isty, ze subor s danym session_id uz skutocne na serveri neexistuje a ku kosiku sa tak dany pouzivatel urcite nevrati. Akym sposobom to spolahlivo odkontrolovat?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP - kontrola existencie session

Príspevok od používateľa audiotrack »

Kód: Vybrať všetko

if(!isset($_SESSION["tvoj_ulozeny_identifikator"])){
     //zmazať záznam
}
Holubar
Darca
Darca
Používateľov profilový obrázok
Príspevky: 3894
Registrovaný: 24 feb 2005, 21:26
Bydlisko: Senec
Kontaktovať používateľa:

Re: PHP - kontrola existencie session

Príspevok od používateľa Holubar »

Problem v tomto pripade je, ze negenerujem identifikatory sam, ale ukladam do db priamo id, ktore generuje php server pre navstevnika a zistujem ich cez funkciu session_id()
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: PHP - kontrola existencie session

Príspevok od používateľa audiotrack »

potom by bolo najlepšie pri každom načítaní stránky (teda niekde do headeru alebo footeru) umiestniť kod, ktorý updatne session v tabuľke. Bude tam proste ďalší stlpec s timestampom, a pri každom načítaní stránky sa tento stlpec pre príslušný riadok updatne aktuálnym timestampom. A tiež v tom istom súbore sa pri každej návšteve stránky skontroluje, ktoré časy sú príliš staré (a teda ich nikto neupdatol, takže taká session už v systéme nekoluje). To, aký čas je "starý" a akú majú tvoje session životnosť zistíš funkciou session_cache_expire()
Napísať odpoveď