Ako overit ci je uzivatel online?

Programovacie jazyky, rady, poradňa...
eMPiko
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3085
Registrovaný: 11 jan 2007, 16:40

Ako overit ci je uzivatel online?

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

Zdravim,
mam riesene prihlasovanie uzivatelov klasicky cez session. Vsetko v pohode funguje, kym som si nezmyslel, ze chcem zistovat status uzivatelov. Skusal som pri lognuti zmenit info v databaze, avsak problem nastal, ked sa uzivatel standardne neodhlasil (tj. udaj v databaze zostal) a potom sa nemohol spat prihlasit, kedze db stale hlasila ze je online. Ako by sa dala databaza naviazat na stav konkretneho session? Nerad by som to riesil prostrednictvom COOKIES alebo automatickom odhlaseni po dlhsej necinnosti, aj ked si uzivatel napr. len cita text.
turtlak69
Guru
Guru
Príspevky: 2896
Registrovaný: 10 máj 2007, 15:58
Bydlisko: /dev/null

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

po kazdom kliknut na nejaku podstranku by sa spustil script, ktory by v databaze updatol posledny cas kliknutia. potom by sa len pri vypise statusu porovnal terajsi cas a cas posledneho kliku. ak by bol rozdial vacsi ako xy minut -> offline
ak myslis, ze uzivatel bude citat text velmi dlho, mozes spravit nejaky ajax script, ktory sa bude pustat a updatovat databazu v nejakom intervale (tak som to riesil ja).
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

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

turtlakové riešenie je rozumné, len pri veľkom portály môže byť dosť neefektívne updatovať každú chvíľku a následne prehľadávať veľkú tabulku
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

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

ani nie, bude efektivne aj pre veelmi velke weby, ak spravi pekne tabulku MySQL, neboj bude to rychle, ani casi nemusi zapisovat, nech tam je jeho ID a pole TIMESTAMP

a bud budes porovnavat tie timestamp ze ci su stare xx minut, alebo zakazdym kliknutim ktorehokolvek usera spustis rutinku ktora vyhadze tych ktory su tam uz dlho, teda offline (co neodporucam, zmensis tabulku ale casto v nej budu zapisi a v konecnom dôsledku ju mozes spomalit ak nemas naozaj velky portal)
eMPiko
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3085
Registrovaný: 11 jan 2007, 16:40

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

Dakujem za rady,
je nejaky rozdiel pri zatazi na server, medzi tym ked do starej tabulky pridam novy stlpec a ked vytvorim novu tabulku s tym stlpcom? A este jedna vec, existuje sposob ako zapisat cas tak, aby sa dal jednoducho porovnat? Ked to ulozim pomocou date(); problem nastava pri odpocte, ked mi hodi napr. 99 namiesto 59. Samozrejme by sa to dalo osetrit vykratenim minut, hodin atd. tak, aby max. hodnota dosiahla 100, ale pride mi to trocha tazkopadne.
JanJanuska
Medium Expert
Medium Expert
Príspevky: 101
Registrovaný: 13 mar 2007, 21:40
Bydlisko: Malacky, Praha
Kontaktovať používateľa:

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

eMPiko napísal:Dakujem za rady,
je nejaky rozdiel pri zatazi na server, medzi tym ked do starej tabulky pridam novy stlpec a ked vytvorim novu tabulku s tym stlpcom? A este jedna vec, existuje sposob ako zapisat cas tak, aby sa dal jednoducho porovnat? Ked to ulozim pomocou date(); problem nastava pri odpocte, ked mi hodi napr. 99 namiesto 59. Samozrejme by sa to dalo osetrit vykratenim minut, hodin atd. tak, aby max. hodnota dosiahla 100, ale pride mi to trocha tazkopadne.
ja ukladam unixovy cas --> time();
zatial som s tym nemal ziadny problem
chmirko
Expert
Expert
Používateľov profilový obrázok
Príspevky: 182
Registrovaný: 05 sep 2008, 15:56
Kontaktovať používateľa:

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

zmazat a vytvorit tabulku ej rychlejsie ako cez altertable, ale ak nasledne do nej ides vkladat vsetky zaznamy vinde ta altertable rychlejsie

dalsi rozidel je, ze ked zmazes, vytvoris, naplnis je mensia sanca vzniku chyb a tak, a nejake lepsie poukladanie v strukture, ale viac menej to robis raz tak ta az tak zataz netrapi

dalsia vec je, ze pri vytvarani novej a znovunaplnani moze dojst ku chybe (zapricinenej uzivatelom) a celkovo to bude trvat dlhsie a teda aj web bude odstaveny dlhsie, cez alter je to nutne odstavit na par sekund
eMPiko
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3085
Registrovaný: 11 jan 2007, 16:40

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

Ok, dakujem za rady, idem na to
Napísať odpoveď