2012-06-14 13 views
6

Jest ta funkcja, którą chcę wykonać, jeśli użytkownik opuści konkretną stronę. Ta funkcja zasadniczo zmieni wszystkie dane w obrębie pewnej kolumny w mojej bazie danych. Jeśli więc użytkownik opuści tę stronę, chcę, aby ta funkcja była wykonywana przez system. Czy istnieje sposób na wykrycie, czy użytkownik opuścił już stronę?Jak wykryć, czy użytkownik opuszcza stronę w PHP

Dzięki!

+1

Krótko mówiąc: nie ma niezawodnego sposobu. Istnieje kilka zdarzeń javascript, które obsługują rozładowywanie, ale nie można ich zagwarantować. – xbonez

+0

http://stackoverflow.com/questions/1889404/jquery-ui-dialog-onbeforeunload –

+0

Możliwy duplikat [JavaScript, przeglądarek, zamknięcia okna - wyślij żądanie AJAX lub uruchom skrypt przy zamykaniu okna] (http: // stackoverflow .pl/pytania/6162188/javascript-browsers-window-close-send-an-ajax-request-or-run-a-script-on-win) –

Odpowiedz

1

Nie można tego zrobić za pomocą PHP, ponieważ jest to język po stronie serwera. Będziesz musiał użyć JavaScript.

5

Z 100% niezawodnością, nie, to niemożliwe. Ponieważ opuszczenie określonej strony jest operacją po stronie klienta, masz 0 kontroli nad tym, co robi klient. Możesz zarejestrować obsługę przez onbeforeunload przez Javascript i mam nadzieję, że obsługuje ją przeglądarka klienta. Ale znowu poparcie dla tego nie jest powszechne.

1

Nie można tego zrobić w php, ale można użyć funkcji JavaScript onbeforeunload, w tym przypadku example

<script type="text/javascript"> 
    window.onbeforeunload = confirmExit; 
    function confirmExit() 
    { 
    return "You have attempted to leave this page. If you have made any changes to the fields without clicking the Save button, your changes will be lost. Are you sure you want to exit this page?"; 
    } 
</script> 
1

Od strony serwera php działa tylko skrypt serwera, a następnie wysyła wynik do przeglądarki ciebie nie można tego zrobić z samym php. Możesz wysłać zapytanie ajax do skryptu php za pomocą zdarzenia onunload za pomocą javascript, a następnie uruchomić skrypt php w odpowiedzi na to żądanie.

Powiązane problemy