0

私が働いている会社の部門の 1 つで Web アプリケーションの開発を手伝っています。
アプリケーションを使用している可能性のあるすべてのユーザーを一度にログオフする方法を検討するように依頼されました。これにより、Web アプリへの更新がプッシュされた場合に、人々が古いバージョンで作業しなくなります。

私の問題は、私たちが使用しているものである PHP、JQuery、AJAX などに精通していないため、何を探すべきか正確にわからないことです。

バックグラウンドで数秒ごとに実行されるタイマー スクリプトがあるので、このスクリプトが頻繁にチェックできるデータベースのフィールドを更新する管理ボタンを追加できると考えていました。フィールドが設定されている場合は、ログオフ スクリプト実行できました。しかし、これは問題を回避するためのハックのようです。

私が一緒に働いている人は、カスタム SESSION ハンドラーを調べることを提案しました。

皆さんはどう思いますか?何か案は?

どんな助けでも大歓迎です。たとえそれが何を探し始めるかについてのアイデアであっても。

前もって感謝します!

編集: これは 1 ページの Web アプリであることに注意してください。ユーザーはリンクをたどったり、ページを離れたりしていません。

4

3 に答える 3

1

選択したデータベースにログインしているユーザーのエントリを作成します。パフォーマンスが基準である場合は memcached かもしれません。

于 2012-10-08T20:32:59.197 に答える
0

セッションをデータベースまたはファイルに保存するカスタム セッション保存ハンドラーを使用します。すべてのセッションを破棄する場合は、ストレージ (データベースまたはファイル) をクリアできます。

から開始 - http://php.net/manual/en/function.session-set-save-handler.php

于 2012-10-08T20:33:10.977 に答える
0

私がやったことは次のとおりでした:

データベース テーブルの 1 つにフィールドを追加し、ブラウザのティックが通過するたびに (約 1 分おきに) その値をチェックしました。ティックが通過したときにフィールドが設定されている場合、ページが更新され、アプリケーションからログオフされ、セッションが破棄されます (誰かがページを離れるとセッションが破棄されます)。
そのフィールドが「0」に戻されるまで、ユーザーは再度ログインできません。

管理者アカウントは、ボタンをクリックするだけでそのフィールドを変更できます。したがって、データベース内のフィールドは「0」のままです

ハックのようなものかもしれませんが、みんなの助けを借りても思いついたものです。唯一の問題は、全員をログオフするのに少し時間がかかることです。引っ張るのと押すのとの問題だと思います。

はい、全員がログオフする少し前に電子メールが送信されるため、作業が失われることはありません。

ご協力ありがとうございました!

于 2012-10-12T17:25:38.667 に答える