4

私は調査会社向けの Web アプリケーションを開発しています。要件の 1 つは、ユーザーが一度に 1 つのデバイスにしかログインできないことです。

そこで、PHP にログインすると、データベース内のユーザーの行が 0 から 1 に更新され、ログアウト ボタンをクリックすると、その行が 1 から 0 に再度更新される、非常に基本的なシステムを開発しました。

唯一の問題は、ユーザーがログアウト ボタンを使用せずに単にブラウザを閉じると、セッションが終了してログアウトされますが、データベース内の行が更新されないことです。

ブラウザを閉じてデータベースを更新する方法はありますか?

4

3 に答える 3

6

アンロードイベントを使用して、mysqlのフラグを更新するajaxリクエストをサーバーに送信できます。次のjquery構文を試すことができます。

$(window).bind('unload', function(){
    $.ajax({
        type: 'get',
        async: false,
        url: 'path/to/file.php'
    });
});
于 2012-09-13T09:44:06.070 に答える
5

信頼できる方法はありません。ページを閉じるときにjavascript関数を呼び出すことができます。これにより、サーバーにリクエストが送信され、セッションが完了したことが通知されますが、JavaScriptがオフになり、まったく実行されない場合もあります。最善の策は、タイムアウトを処理することです。最後のアクションの時間を保存します。10分以上前の場合は、セッションを「期限切れ」にします。

于 2012-09-13T09:44:55.183 に答える