2

珍しい問題があります。特定のユーザーのセッション(自分以外)のセッション変数を手動で変更できる必要があります。このアプリケーションは、コール センターの従業員を管理します。

各ユーザーには、「ステータス」と呼ばれるセッション変数があり、「オンライン」、「通話中」、「休憩中」などに相当します。

ユーザーが休憩中の場合、$_SESSION['status']「休憩中」に変更されます。「休憩開始」ボタンをクリックしない習慣がある人もいるので、上司から、管理者レベルのアカウントからユーザーをログアウトさせる機能を提供できないかと尋ねられました。

「ブレーク時」機能をデータベースを使用するように変換したくありません。これは、約 50 個のファイルに手動で追加する必要がある 1 つの余分なクエリになるからです。

従来、これが不可能であることは承知していますが、型にはまらない回答を期待しています。たとえば、サーバー自体のセッション ファイルを開いて書き込むことで、これは可能でしょうか?

4

4 に答える 4

1

http://php.net/manual/en/function.session-id.phpをチェックしてください

何をしようとしても、セッション変数を変更しようとしています。とにかく、データベースを使用せずにこれを行う方法はないと思います。session_id() を使用してスーパーバイザーのセッション ID を保存し、彼女の $_SESSION を別のユーザーに変更し、ステータスを変更してから、自分のセッションに戻すことができますが、そのセッション ID を取得する方法がわかりませんセッションの開始時にデータベースに入れることは別として、最初に配置します。

50 の異なるファイルを変更して 1 つの小さな機能を追加する必要がある問題を修正することは、長期的には「型にはまらない答え」よりも役立つでしょう。

于 2013-05-02T06:39:50.150 に答える
1

私が理解しているように、ユーザーをログアウトするにはセッションを削除する必要があります。サーバー上の特定のユーザー セッション ファイルを物理的に削除することはできますが、脆弱で安全ではありません (IMHO)。

セッションをデータベースに保存すると、簡単に操作/削除できます。カスタム セッション ハンドラを作成するための公式ガイドはこちらです。

自分で書きたくない場合は、サードパーティのソリューション、たとえばthis oneを使用できます。

于 2013-05-02T06:41:19.013 に答える