私には、ユーザーが正常にログインするたびに行を書き込むdatabase
テーブルがあります。LOG
ユーザーlog-out
が. logout.php
_ $_SESSION
_database
LOG
それを回避する方法、または有効期限が切れるたびに自動的に書き込む方法は$_SESSION
?
これを行うのは一般的にかなり面倒です。PHP は、意味のある方法でセッションの有効期限を公開していません。
ただし、通常、PHPはcronジョブをインストールしてセッションを期限切れにします(私のLinuxサーバーではそうです/etc/cron.d/php5
):どのように行うかはわかりませんが、システム上の同等のスクリプトを変更して、削除しようとしているログファイルを開くことができますし、それらの ID をログ データベースに送信します。
独自のセッション保存ハンドラを実装できます。これは、保存ハンドラの destroy および GC メソッドで処理する必要があります。
セッションの期限切れはすべてブラウザーで処理され、サーバーはまったく関与しないため、セッションの期限切れがサーバーに通信してデータベースへの書き込みを引き起こす方法はありません。
そうは言っても、探しているものに戻る方法はあります。Cookie がクライアント ブラウザに保存される期間がわかっている場合、開始時刻を更新する最後のサイト アクセスをログに記録すると、タイムアウトより古いすべてのアクセスをチェックできます。
セッションがブラウザー セッションのために存続する場合、あなたは SOL です。アクセス時間を記録し、残りを推測するだけです。