サーバー構成ファイルを変更することはできないため、ユーザーがログインし続ける時間を 2 時間に変更する必要があります。
そこで、phpinfo を確認したところ、gc_maxlifetime=1440 が見つかりました。
そこで、多くの情報を確認し、ログイン ページでこの関数を使用して、元の session_start() を置き換えました。
関数 start_session_custom($expire = 36000)
{
ini_set('session.gc_maxlifetime', $expire);
if (empty($_COOKIE['PHPSESSID'])) {
session_set_cookie _params($expire); ( ; ) でもまだ効果には余裕がありません。
もう 1 つ: 古いコードの束には多数の session_start がありますが、それらをすべて start_session_custom に置き換える必要がありますか?
最初の session_start ページ (つまり、ログイン ページ) でのみ変更できます。 一下正
修正します: 全文を確認したところ、 session_set_save_handler があることがわかりました。 Return false ;
$this->db->query; "DELETE FROM $this->table WHERE `last_activity`<$expiretime");
ディスカッションへの返信 (解決策)
原則: session_start の前に設定します。それ以外の場合は無効になります
コードを公開ファイルに置くことができます (すべてのプログラムがそれをロードします)。他のファイルにある session_start を削除します
検索するのが面倒であれば、php 5.4 環境でプロジェクトを実行できます
php 5.4 は警告を発行しますsession_start を繰り返す場合、それに応じて変更すると非常に便利です
start_session_custom のコードから、実際に session_start の前に設定されていることがわかります。
私のアイデアは、ログイン ページが初めて start_session_custom を呼び出し、その後のすべてのセッションで start_session_custom に設定された gc_maxlifetime を使用するというものです。
では、失敗の原因は後のページの session_start にあるのでしょうか?
プログラム内で行った設定はプログラム終了後無効になります