この時間が過ぎるとセッションはガーベジとしてマークされ、ガベージコレクタはデフォルトで1%の確率(session.gc_probability)で開始されるだけなので、session.gc_maxlifetimeに頼ることはできません。
IMHOより良い方法は、期限切れのデータを処理することです。
あなたは、インスタンスのための時間を開始し、セッション変数に保存することができます:
<?php $_SESSION['last_seen'] = time();//Update this value on each user interaction. ?>
Later..viaのcronのは、あなたがこのような何かを行うことができます。
<?php
//Get the session id from file name and store it into the $sid variable;
session_id($sid);//try to resume the old session
session_start();
if (isset($_SESSION['last_seen']) && $_SESSION['last_seen'] > $timeout){//Session is expired
//delete file
session_destroy();
}else if (!isset($_SESSION['last_seen')){ //already garbaged
//delete file
session_destroy();
}
?>
テストされていません...ただのアイデア
期限切れのセッションを削除するのはウェブサーバーの仕事だということを覚えている限り、おそらくこのメカニズムに触れることができますか? – Mchl
@Mchlはい、期限切れのセッションを削除するのはサーバーの仕事だが、そうしたいとは思わない。私は、彼のセッションが期限切れになっている場合、または私のサーバーのスペースを占有している多くの不要なファイルが存在する場合は、ユーザーのアップロードファイルを削除したい。 –