Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: kironet 15. 06. 2014, 21:27:50
-
Dobrý večer,
chtěl bych se zeptat.
Chci udělát Online/Offline status uživatele, ale netuším jak updatovát DB při LogOffu.
Při loginu jsem to udělál, ale tam je to jednodušší jelikož tam uživatel hned zadává potřebne údaje.
V loginu to mám tak že po kliknuti na login se mi u uživatele přepíše False na True, ale jak udělát aby po LogOffu se True přepsalo na False netušim, a na googlu jsem nic nenašel, doufám že mi aspoň tu někdo poradi.
Byl bych moc vděčný.
-
zapisuj pravidelne timestamp a pokud je mensi nez treba 5 minut -> offline
-
Nejsem až tak pokročili s ASPckem taže by mi stačilo jen updatovat DB zatim :D
-
nejde o ASP... pokazde, kdyz uzivatel zobrazi stranku, zapis do databaze k uzivateli aktualni cas -> kdyz budes chtit zobrazit, zda je uzivatel prihlaseny / odhlaseny, porovnej cas v databazi s aktualnim casem (napr s odchylkou 5 minut)
-
zapisuj pravidelne timestamp a pokud je mensi nez treba 5 minut -> offline
To je hodne blby pristup...
-
nejde o ASP... pokazde, kdyz uzivatel zobrazi stranku, zapis do databaze k uzivateli aktualni cas -> kdyz budes chtit zobrazit, zda je uzivatel prihlaseny / odhlaseny, porovnej cas v databazi s aktualnim casem (napr s odchylkou 5 minut)
Tak to vypada jednoduše, ale ne pro mě, jelikož to pak bude hlasit furt že je uživatel OFFline, protože web má jen + duležitou část pro uživatele, takže by musel každých 5 min refreshovat aby se ukazal jako online :D
-
Jej nejde tu editovat :(
Takže pro mě je jednodušší aby při loginu mi to do db zapsalo True a pri LogOffu False, u toho LogOffu netušim jak to udelat. :(
-
Vzhledem k tomu, ze HTTP je bezstavovy protokol tak se to dela blbe. Priklad - uzivatel zavre prohlizec, cookie expirace je defaultne 20min. Takze on muze byt nejakych ~20min skutecne offline ale ty to tezko zachytis. Pokud ovsem pouzijes JavaScript.. ;)
-
zapisuj pravidelne timestamp a pokud je mensi nez treba 5 minut -> offline
To je hodne blby pristup...
A jak byste teda resil duplexni spojeni server<->klient (s prihlednutim na "multiplatformnost")? Schvalne jsem nezminoval variantu s AJAXem, protoze je to jenom modifikace puvodni rady
Kdyz uz kritizujete, aspon uvedte lepsi pristup
-
Vzhledem k tomu, ze HTTP je bezstavovy protokol tak se to dela blbe. Priklad - uzivatel zavre prohlizec, cookie expirace je defaultne 20min. Takze on muze byt nejakych ~20min skutecne offline ale ty to tezko zachytis. Pokud ovsem pouzijes JavaScript.. ;)
Pokud pouzije javascript (respektive AJAX), je zase u moji rady, takze opet blbe?
-
Vzhledem k tomu, ze HTTP je bezstavovy protokol tak se to dela blbe. Priklad - uzivatel zavre prohlizec, cookie expirace je defaultne 20min. Takze on muze byt nejakych ~20min skutecne offline ale ty to tezko zachytis. Pokud ovsem pouzijes JavaScript.. ;)
Pokud pouzije javascript (respektive AJAX), je zase u moji rady, takze opet blbe?
Ano, blbe. Pletete 2veci jak se Vam zlibi. Ach jo
-
http://msdn.microsoft.com/en-us/library/vstudio/ms178583%28v=vs.100%29.aspx snad pomuze ;) Jsou i jine zpusoby ale to take neni zadna rocket science ;D
-
http://msdn.microsoft.com/en-us/library/vstudio/ms178583%28v=vs.100%29.aspx snad pomuze ;) Jsou i jine zpusoby ale to take neni zadna rocket science ;D
Jo díky to se mi bude hodit na zobrazení počtu uživatelu online.
Vysvětlim princip webu, mám udělaný pidi webík, pro známeho, měl to být zezačatku obyčejný formulář, ale z časem se tám popřidavalo dost věci jako administrace, role atd...
Teď potřebujeme nějak udělát status adminu jestli jsou online nebo ne, proto jsem to chci pořešit tak že pokud se někdo přihlási tak se mu do DB zapíše do bool proměnne True, pokud odhlási tak se přepíše na False.
A vypis by byl že pokud bool status == True tak se vypíše ON , pokud False tak se vypíše OFF.
S zapisem do DB při loginu jsem to už pořešil, o v pohodě funguje, ale při logoffu mi to nejde.
-
S zapisem do DB při loginu jsem to už pořešil, o v pohodě funguje, ale při logoffu mi to nejde.
Při odhlášení se to údělá úplně stejně, jako při přihlášení, akorát místo true zapíšete false.
Hlavně si ale musíte definovat, co je to odhlášení. Přihlášení je celkem jasné, uživatel zadal správné přihlašovací údaje a odeslal je na server. Ale co je odhlášení? Když uživatel klikl na tlačítko "odhlásit" na stránce, to asi ano. Ale co když na nic neklikal a jenom zavřel prohlížeč, je to také odhlášení? A co když vichřice strhla dráty a uživatelovi se kvůli výpadku proudu vypnul počítač? V obou dvou případech asi uživatele nebudeme považovat za přihlášeného, ale k žádnému explicitnímu odhlášení nedošlo. Proto se používají ty různé časovače, a uživatel, který nějaký čas nevykazuje žádnou aktivitu, je automaticky odhlášen. Aby to neodhlašovalo i uživatele, který si jen dlouho prohlíží jednu stránku, je možné doplnit do stránky JavaScript, který budete po dobu zobrazení stránky pravidelně pinkat na server "uživatel má stránku ještě otevřenou".
-
Dyt o tom mluvim ;D