2012-06-14 25 views
6

Có chức năng này mà tôi muốn thực thi trong trường hợp người dùng rời khỏi một trang cụ thể. Chức năng này về cơ bản sẽ thay đổi tất cả dữ liệu trong một cột nhất định trong cơ sở dữ liệu của tôi. Vì vậy, trong trường hợp người dùng rời khỏi trang này, tôi muốn chức năng này được thực hiện bởi hệ thống. Có cách nào để phát hiện xem người dùng đã rời khỏi trang chưa.Cách phát hiện nếu người dùng rời khỏi trang trong PHP

Cảm ơn!

+1

Ngắn câu chuyện ngắn: không có cách nào đáng tin cậy. Có một số sự kiện javascript xử lý việc tải xuống, nhưng chúng không thể được đảm bảo. – xbonez

+0

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

+0

Có thể trùng lặp [JavaScript, trình duyệt, đóng cửa sổ - gửi yêu cầu AJAX hoặc chạy tập lệnh khi đóng cửa sổ] (http: // stackoverflow .com/questions/6162188/javascript-browser-cửa sổ-đóng-gửi-a-ajax-yêu cầu-hoặc-chạy-a-tập lệnh-trên-thắng) –

Trả lời

1

Bạn không thể làm điều đó bằng cách sử dụng PHP vì đây là ngôn ngữ phía máy chủ. Bạn sẽ cần sử dụng JavaScript.

5

Với độ tin cậy 100%, không, điều đó là không thể. Vì việc rời khỏi một trang cụ thể là một hoạt động phía máy khách, bạn có 0 quyền kiểm soát đối với những gì khách hàng thực hiện. Bạn có thể đăng ký trình xử lý onbeforeunload qua Javascript và hy vọng rằng trình duyệt của khách hàng hỗ trợ nó. Nhưng một lần nữa, hỗ trợ cho điều này không phổ biến.

1

Bạn không thể làm điều này trong php nhưng bạn có thể sử dụng chức năng onbeforeunload javascript, ở đây một 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

Kể từ server-side php chỉ chạy kịch bản máy chủ và sau đó gửi kết quả cho trình duyệt bạn không thể làm điều này với php một mình. Bạn có thể gửi một yêu cầu ajax đến tập lệnh php của bạn với sự kiện onunload bằng cách sử dụng javascript, và sau đó chạy tập lệnh php để đáp ứng yêu cầu đó.

Các vấn đề liên quan