私はちょうど問題に直面しました。私は現在、学校向けのプロジェクトに取り組んでおり、すべてのアクティブユーザーをサイドバーに表示したいと考えています(チャットと同様ですが、そうではありません)。
最初に私はこれについて考えました(擬似コード):
<?php
...
class user {
//Some instance vars.
public function __construct(){
//Write username in a textfile/database
}
public function logout {
//Delete username from textfile/database
}
}
...
?>
問題は次のとおりです。
1)ユーザーオブジェクトは$_SESSION[]
配列に格納されます。だから私は魔法の方法を使うことができません__destruct()
。だから私はlogout()
メソッドを作りました。(問題は解決しました^^)
2)ユーザーが同じIDで2つのデバイス(ラップトップ、スマートフォンなど)にログインし、一方のデバイスでセッションを終了したとすると、もう一方のデバイスも削除されます。
3)ユーザーはおそらくログアウトを押したくないが、ブラウザウィンドウを閉じるだけです。彼がログアウト/セッションを終了したことをどうやって知ることができますか。
PHPはこの種のタスクに最適なプログラミング言語ではないことは知っていますが、私はこのプロジェクトをPHPで実行したいと思っています。この質問がすでに行われている場合は本当に申し訳ありませんが、関連するすべての質問を注意深く検索しました。それらはすべて(多かれ少なかれ)私のものとは異なります。
前もって感謝します :)