Szukam odpowiedzi na te pytania od jakiegoś czasu i znaleźć tak do końca dobrego sposobu nie mogę. W sieci też nie namierzyłem żadnego dobrze działającego rozwiązania a jak to mawiają jak czegoś nie ma w googlach to na pewno to coś nie istnieje. ;)
Mimo wszystko nie poddaję się i coś kombinuję - udało mi się znaleźć pewnie rozwiązanie, dzięki któremu ilość wylogowań użytkowników z systemu znacznie wzrosła.
W momencie gdy na utworzymy plik autologout.js w którym umieścimy:
$(document).ready(function(){
function bye(e) {
location.href = "logout.php";
}
window.onbeforeunload=bye;
$("#nazwaBody").mousedown(function(){
window.onbeforeunload=null;
});
});
a w samym kodzie strony umieścimy:
<script type='text/javascript' src='autologout.js'></script>
oraz dodamy id do body:
<body id="nazwaBody">
to każda próba wyjścia z systemu spowoduje przejście do strony logout.php. Aby skrypt nie zadziałał w momencie przejścia z jednej podstrony systemu do drugiej wyłączamy onbeforeunload gdy użytkownik kliknie gdziekolwiek w obszarze aplikacji.
Nie jest to idealne rozwiązanie (można je obejść w prosty sposób) ale mimo wszystko ilość wylogowujących się z systemu użytkowników wzrosła z 10 do 90 procent co bardzo mnie cieszy. :)
Szukam w dalszym ciągu lepszego rozwiązania tego problemu...
Bardzo ciekawe rozwiązanie, też rozważam jak to zrobić usuwając ślady logowania z mysql.
OdpowiedzUsuń