Autor | Zpráva | ||
---|---|---|---|
zoffob Profil * |
#1 · Zasláno: 12. 7. 2007, 09:42:36
Ahojte!
Mam takyto problem: Uzivatel sa po prihlaseni na stranku zapise do session, ale kvoli tomu aby admin vedel, kto je prihlaseny, tak sa to zapise aj do tabulky MySQL databazi. Problem je v tom, ze ak uzivatel sa neodhlasi korektne, ale iba zavrie browser, tak zaznam z tabuky sa nevymaze a ostane tam visiet. Neviete mi poradit, ako zabezpecim, aby server vykonal DELETE v tej tabulke prislusneho riadku?? |
||
nightfish Profil |
#2 · Zasláno: 12. 7. 2007, 10:19:20
Neviete mi poradit, ako zabezpecim, aby server vykonal DELETE v tej tabulke prislusneho riadku??
po nějaké době neaktivity konkrétní záznam z tabulky vymazat |
||
Martin Tiršel Profil |
#3 · Zasláno: 12. 7. 2007, 12:40:12
V Javascripte je event onunload, viz http://www.jakpsatweb.cz/javascript/udalosti.html a cez to zavolas link tvojho PHP skriptu na odlogovanie. Samozrejme to nemozes brat na 100% a treba aj casovu kontrolu. Idealne pri kazdej akcii uzivatela dany zaznam v DB updatnut, napriklad si vytvorit stlpec "modified" typu integer a tomu priradovat hodnotu time() alebo z mysql UNIX_TIMESTAMP(). Potom si hodis bud do cronu alebo pokial nemas moznost, tak inym sposobom osetrit, ze sa ti bude spustat skript, ktory prevedie DELETE query s podmienkou WHERE `modified`< (UNIX_TIMESTAMP() - x), kde x je doba necinnosti v sekundach. Ako doplnok pridaj este naviazanie session na danu IP adresu a mas to relativne zabezpecene :)
|
||
zoffob Profil * |
#4 · Zasláno: 12. 7. 2007, 13:52:06
Cez onunload to je zle riesenie, nebude to takto fungovat, lebo ak uzivatel zavrie browser uz sa ziadny request na server nevykona
|
||
Martin Tiršel Profil |
#5 · Zasláno: 12. 7. 2007, 13:55:55
Ved preto hovorim, ze na 100% s tym nemozes pocitat a treba to spravit kombinaciou viacerych opatreni, neexistuje na to ziadne ine riesenie.
|
||
zoffob Profil * |
#6 · Zasláno: 13. 7. 2007, 11:19:13
Ale existuje! UZ som to vygooglil. :)) Da sa to urobit cez webBug. Skript sa spusti na pozadi a aj ked sa user diskonektne tak to ide dalej. Alebo sa da spustit script na pozadi servra a bude bezat stale.
Ale aj tak dikes |
||
Kuba Kubikula Profil * |
#7 · Zasláno: 13. 7. 2007, 13:24:17
To zoffob:
Přesně tohle řešení ti nabízel MArtin Tiršel: Potom si hodis bud do cronu alebo pokial nemas moznost, tak inym sposobom osetrit, ze sa ti bude spustat skript, ktory prevedie DELETE query s podmienkou WHERE `modified`< (UNIX_TIMESTAMP() - x), kde x je doba necinnosti v sekundach. Ako doplnok pridaj este naviazanie session na danu IP adresu a mas to relativne zabezpecene :) |
||
Časová prodleva: 17 let
|
0