ホームページ  >  記事  >  バックエンド開発  >  セッション時間の設定

セッション時間の設定

WBOY
WBOYオリジナル
2016-06-23 14:06:321042ブラウズ

サーバー構成ファイルを変更することはできないため、ユーザーがログインし続ける時間を 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 にあるのでしょうか?

プログラム内で行った設定はプログラム終了後無効になります

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:PHPとcmsの関係次の記事:PHPとcmsの関係