Autor Zpráva
peta
Profil *
Dotaz: Jak nejlepe a usporne resit tabulku online uzivatelu?

Momentalne to resim takto:
1.
Do SQL zapisuji tabulku online, kde si prekopiruji par udaju o uzivateli, nick, heslo a pod, k tomu pridam cas posledni akce, pripadne misto.
- kazdy soubor ma na zacatku SQL dotaz na tabulku online a zapis do SESSION
- kazdy soubor se pokousi zapsat posledni aktivitu do SQL
- a mam soubor, ktery vypisuje udaje z online
- mazani z online zatim resim jen pri nalogovani (ti, co delsi cas nic nedelali) a pri odhlaseni
(prvni 2 kroky muzou byt na SQL docela narocne a par free hostingu omezuje pocet SQL dotazu)

2.
Dale mne napadlo totez resit pres PHP soubory, zapisoval bych tabulku online do souboru. Ale nevim, jestli je to zrovna idealni. Lepsi je to snad pres SQL

3.
A jeste mne napadlo takove divoke reseni pres SESSION.
Kdy si tabulku online postavim v SQL jako:
ID | sessionID
- v kazdem souboru tim padem odpadaji SQL dotazy na online tabulku, protoze by stacilo kontrolovat pouze spravnost udaju v session (a session se automaticky rusi za nejaky cas)
zapis casu by sel do session
- zobrazeni tabulky online: vyzadam si SQL dotaz na seznam sessionID, ktere pak po jednom projdu pres PHP, vytahnu si z nich jmena uzivatelu a posledni aktivitu
- zapis posledni aktivity: by tudiz probihal na urovni SESSION a tim bych zachranil o spoustu SQL
(Nelibi se mi na tom to, ze bych menil sessionID, cili bych session pri zobrazeni tabulky online musel cyklem ukoncovat a nevim, zda je ta funkce rychla pri 20x spusteni proti jednomu SQL dotazu)

Mate jeste nejake jine reseni?
Visitor
Profil *
Nevidim duvod mit dalsi tabulku s prekopirovanymi udaji... tomu se rika redundance dat a nepripada mi zrovna zadouci.

Ja si jednoduse updatuji pri aktivite uzivatele "cas posledniho clicku". V konstantach mam definovano ze uzivatel neaktivni 20 minut je prohlasen za offline. Takze kdyz uzivatel klikne a NOW() - cas_posledniho_clicku > 20 minut znamena to ze je offline -> zrusim mu session promene a poslu ho na logovaci stranku.

-----
Jedno z moznych reseni je spolehat na vyprseni platnosti session. Ale ja radeji vsechno drzim pevne ve svych rukach.
Toto téma je uzamčeno. Odpověď nelze zaslat.