セッションが破棄された後 (つまり、ユーザーがブラウザーを閉じた後) に関数を誘導したいと考えています。この関数は、データベースの値を true から false に変更します。それは可能ですか?
3 に答える
ユーザーの最後のアクティビティをデータベースに登録することをお勧めします。これにより、100% 正確になります。次に、登録された日付と現在の時刻を比較することで、ユーザーがアクティブかどうかを判断できます。
ユーザーがまだあなたのページにいるかどうかを本当に知りたい場合は、何かを行うこともできますが、それを避ける必要があります。クライアント側では、たとえば毎分、サーバーにクライアントがまだそこにあります。クライアントがページを閉じると、ループは新しいクエリを作成しません。
これを行う唯一の方法は、Javascript を使用してクローズを検出し、Ajax リクエスト (XMLHttpRequest
たとえば、使用) を PHP ページ (ログアウト部分を処理する) に使用することです。
終了部分の詳細については、javascript (またはその他の言語) を使用したブラウザー/タブの終了検出を参照してください。
ユーザーがオンラインであるかどうか (または同様のこと) を把握したいと考えていると思います。セッションが停止していることを「知る」(読む: 推測する) 唯一の方法は、ユーザーが最後にアクティブだった時刻を現在の時刻と比較します。次に、必要に応じて、30 分間非アクティブだったユーザーがオフラインであると仮定することができます。