2

ユーザーがウェブページを終了するときにアクションを実行する必要があります。タイムアウトを使用すると機能しますが、ページを更新/再読み込みした場合にのみ、機能する必要があります。自動的に、ユーザーがたとえば5分間非アクティブである場合、破棄されるためにそのユーザーに属する特定のファイルが必要です。最初に次のテストを実行して、タイムアウトが機能するかどうかを確認しました。

<?php
session_start();
//set timeout
$inactive=60;
 //check to see if timeout is set
if(isset($_SESSION['timeout'])){
 $session_life= time() - $_SESSION['timeout'];
 if($session_life > $inactive)
{session_destroy();
  echo "new message<br>";
}
}
$_SESSION['timeout']= time();
 echo "after one minute,a new message should be added.";
  ?>

ページをリロード/更新した場合にのみ機能しますが、上記の時間枠内に非アクティブになった後、コマンドを自動的に実行するにはどうすればよいですか?

4

3 に答える 3

1

5分ごとに実行され、ファイルを削除するCronJobを設定するのが最善の方法だと思います。

たぶん、session_set_save_handlerを使用してセッションをdbテーブルに保存し、それらが最後にアクティブになったときにcronjobをチェックします。

削除したいファイルはユーザーまたはセッションに接続されていますか?

于 2012-10-23T19:42:04.030 に答える
0

正解かどうかはわかりませんが、一定時間後に自動的にセッションを終了するようにお願いしている場合は、設定を検討してみませんか?

session.gc_maxlifetime

あなたのphp.iniファイルでは、それは私が推測するはるかに効率的な解決策です、コンテキストが間違っている場合はご容赦ください。

また、ファイルシステム内の一部のデータを削除する場合は、クライアント側からのコールバックで開始したくない場合は、cronジョブまたはデーモンを使用します。

于 2012-10-23T18:14:07.513 に答える
-1

javascriptのsetIntervalコマンドを使用して、コマンドを実行し、コマンドを使用してページを更新します。

于 2012-10-23T18:08:19.530 に答える