タイムスタンプを取得し、そのタイムスタンプをクッキーとして保存するか、PHPセッションがタイムアウトしたときにmysqlデータベースに保存することはできますか? 私は期限切れになってしまい、セッションがどれくらい持続しているかを再確認したいと思っています。PHPセッションの終了時にタイムスタンプを取得するにはどうすればよいですか?
こうして、私は何時に人がログインし、何時に彼らが追い出されたりログアウトされたかを知ることができます。
タイムスタンプを取得し、そのタイムスタンプをクッキーとして保存するか、PHPセッションがタイムアウトしたときにmysqlデータベースに保存することはできますか? 私は期限切れになってしまい、セッションがどれくらい持続しているかを再確認したいと思っています。PHPセッションの終了時にタイムスタンプを取得するにはどうすればよいですか?
こうして、私は何時に人がログインし、何時に彼らが追い出されたりログアウトされたかを知ることができます。
興味深い質問です。私のアプリケーションでも同様のケースがあったので、あなたのデータベース内のsessions
をすべて追跡できます。列名はsession
で、この列にはsession_id
、login_time
、last_visited
、user_id
などの属性が含まれています。また、ユーザーがログイン要求を送信するたびにこのテーブルを更新します。
ユーザーがブラウザまたはブラウザウィンドウを閉じるか、アクティビティが表示されない場合があります。あなたには2つのアプローチがあります
1- javascript
にwindow-close
イベントを聞くことができ、session
テーブルの更新をリクエストできます。これは問題になるかもしれませんが、ブラウザウィンドウを閉じるとセッションが破壊されないようにすることができます。右 ?であってもよいし、ので、ここで第二のアプローチである
2 - そのlast_visisted
時間最近更新(どんな時間間隔であなたが好きな)と、あなたのテーブルを更新していないセッションのためsessions
テーブルをスキャン[crone job][1]
を作成します。
これが役に立ちます。
しかし、ユーザーが別のページに行っても、そのウィンドウを閉じる機能は起動しますか? これを行う方法はクッキーに関連すると思っていましたが、ブラウザが閉じられてもそれは意味をなさないことに気付きました。 – AllianceHardware
いいえ発射されません –
説明を探しています@Downvoters –
実際に活動時間を覗きこませたい場合は、ユーザーがログインしてログアウトするとDBに時間を挿入できます。なぜあなたはこのアプローチで行かないのですか? –
私もそうするつもりですが、誰かが実際にログアウトすることはまれで、通常はブラウザを閉じるだけです。 – AllianceHardware
'onbeforeunload'イベントが実行された後、AJAXポストをどこかで起動してデータベースに記録することができます。 https://stackoverflow.com/questions/20853142/trying-to-detect-browser-close-event – Waragi