Autor Zpráva
zoffob
Profil *
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
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
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 *
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
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 *
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 *
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 :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0