Autor | Zpráva | ||
---|---|---|---|
vojtah22 Profil |
#1 · Zasláno: 19. 5. 2009, 18:25:41
Dobrý den,
momentálně řeším velký problém, nad kterým si lámu hlavu seč můžu, ale vyřešit ho nemůžu. Abych začel od začátku: Přemýšlel jsem, jak zjistit, kdo je momentálně k webu přihlášen a kdo není. Vymyslel jsem to metodou, že při přihlášení se uživatelské jméno onoho člověka zapíše do databáze a při odhlášení se smaže. To funguje naprosto 100%, samozřejmě ale řeším problém co udělat, když se uživatel neodhlásí a prostě zmáčkne "křížek" a okno zavře... Nevíte, jak to ošetřit? Nebo jiný způsob, jak vyřešit online / offline status přihlášenejch lidí (php, MySQL, java script) Předem moc děkuji za případné odpovědi.. :))) |
||
kachnak Profil |
#2 · Zasláno: 19. 5. 2009, 19:15:45
ja som mal velmi davno take pocitadlo ze ukazovalo kolko ludi je prave na stranke a tam to bolo spravene cez session... si myslim ze nejaka funkcia by vedela spocitat vsetky session otvorene na tej stranke alebo take daco.. fungovalo to velmi dobre
|
||
Mastodont Profil |
#3 · Zasláno: 19. 5. 2009, 19:44:44
vojtah22
Víme, do databáze zapisovat i čas posledního přístupu a vybírat lidi, co během posledních X minut požádali o další stráýnku (a po určité době záznam nečinného člověka smáznout). |
||
fuckin Profil * |
#4 · Zasláno: 19. 5. 2009, 20:39:03
presne tak jak pise Mastodont, do db ulozis treba id a cas nacteni stranky a postupne ho pokazde updatujes, pak vypises treba uzivatele kteri byli z posledni minutu online...problem je mozna v tom ze to zatezuje trosku vic db...
|
||
Mastodont Profil |
#5 · Zasláno: 19. 5. 2009, 20:45:37
problem je mozna v tom ze to zatezuje trosku vic db
Dotaz můžeš kešovat, třeba v intervalu 30 sekund i více. |
||
Mezerník Profil * |
#6 · Zasláno: 19. 5. 2009, 20:48:19
Javascript: událost onUnload:
http://www.jakpsatweb.cz/javascript/udalosti.html |
||
Mastodont Profil |
#7 · Zasláno: 19. 5. 2009, 20:52:14
Mezerník
To sice vypadá pěkně, ale Google říká, že ve FF s tím mohou být těžké potíže .... |
||
AM_ Profil |
#8 · Zasláno: 19. 5. 2009, 21:49:12
Událost onUnload je krajně nespolehlivá, ze svaté trojice IE-FF-Opera jí mám pocit že podporuje jen IE. Správné řešení píše Mastodont, taky se tím vyfiltrují ti, kdo se přihlásí a pak nechají prohlížeč otevřený a neaktivní.
|
||
vojtah22 Profil |
#9 · Zasláno: 19. 5. 2009, 22:09:54
Děkuji všem za cennéé rady...
Nejschůdnější se mi zdá možnost zapisování těch údajů do db.. Jak toho docílit, je mi vlastně jasné, až na věc, jak to smazat v případě neaktivity... Když ten člověk není aktivní, nemůže přece aktualizovat stránku, nemůže nikam kliknout.. kam tedy vmístit script pro smazání udaju v db??... |
||
Mastodont Profil |
#10 · Zasláno: 19. 5. 2009, 22:13:26 · Upravil/a: Mastodont
kam tedy vmístit script pro smazání udaju v db
Buď můžeš využít cron a spouštět zvláštní php mazací soubor třeba v hodinových intervalech, nebo si to nasimuluj v aplikaci - při spuštění mazacího dotazu si někam ulož čas a ten pak pravidelně kontroluj a opět po uplynutí třeba hodiny spust DELETE ... |
||
AM_ Profil |
#11 · Zasláno: 19. 5. 2009, 22:32:36
Nebo ten DELETE spustíš pokaždé, když se stránka aktualizuje. Nebo další možnost je se na DELETE vykašlat, mít čas posledního refreshe jako jeden sloupec tabulky uživatelů a prostě vždycky jen vypsat pouze ty, kteří byli aktivní posledních X minut
|
||
kachnak Profil |
#12 · Zasláno: 20. 5. 2009, 12:45:25
nieco podobne som mal aj ja ze odhlasovalo automaticky po 10 minutach a ta odhlasovacia funkcia sa spustala na zacaitku stranky... som si hodiny preratal na sekundy a ak bol rozdiel vacsi ako 600sek tak ho vymazalo.. lenze problem som mal ked to bolo okolo polnoci.. tam to trebalo nejak inac vymyset kedze hodiny sa nuluju.. (23:59 a 00:01) a rozdiel tam bol skoro cely den a v skutocnosti len 120 sekund cize nemalo to odhlasit
|
||
Časová prodleva: 15 let
|
0