puschpull Jednoduše, jakmile potřebuješ session (a nemáš ji), vyrobíš koláček, do něho uložíš nějaký HASH (třeba zahashovaný systémový čas v mikrosekundách), založíš v tabulce "sessions" (tebou k tomu účelu vytvořenou, může být i ten typ, co se alokuje v paměti sql serveru) řádek s klíčem toho hashe. Do řádky si nastrkáš vše co potřebuješ sledovat. Druhá možnost je tam dát TEXT políčko a do něho serializovat nějaké pole (třeba $mysession).
Na začátku stránky vždycky vyzvedneš koláček, vyzvedneš řádek z tabulky podle koláčku, deserializuješ $mysession. Pokud $mysession v průběhu zpracování skriptu změníš (doporučuju dělat formou $mysession["dirty"]=1), tak na konci skriptu proměnou serializuješ a uložiš do databáze.
Doporučuju ještě do tabulky vpašovat čas expirace a při zakládání nové session provést DELETE FROM `sessions` WHERE `expires` < NOW()
PS: Ještě k tomu hashi, pokud ti selže INSERT INTO pro duplicitní klíč, není problém generování zopakovat :-). Jenom abych se vyhnul tomuto dotazu :-) |