この記事では、php セッションを期限切れにしないように設定するいくつかの方法を紹介します。プログラムを変更しないことが最善の方法です。プログラムが変更されると、テスト部門は私と同じように非常に憂鬱になるため、システムを変更する唯一の方法があります。環境設定は実際には非常に簡単で、php.ini 設定ファイルを開き
3 行を次のように変更します:
1.セッション.use_cookies
この値を 1 に設定し、Cookie を使用してセッション ID を渡します
2.セッション.クッキー_ライフタイム
これは、セッション ID がクライアント Cookie に保存される時間を表します。デフォルトは 0 です。これは、ブラウザが閉じるとすぐにセッション ID が無効になることを意味します。このため、PHP セッションは永続的に使用できません。 ! それでは、大きいと思われる数値に設定しましょう。999999999 はどうでしょうか。それでOKです。それだけです。
3.セッション.gc_maxlifetime
これは、セッション データがサーバー側に保存される時間です。この時間を超えると、セッション データは自動的に削除されます。 そこで、これも 99999999 に設定しましょう。
それだけです。すべて問題ありません。もちろん、信じられない場合は、テストしてください。コンピュータの電源がオフまたはダウンしていなくても、セッションをセットアップして 10 日半後に戻ってください。このセッションIDを参照してください。
もちろん、あなたがサーバーを制御する権限を持っておらず、php.ini 設定を変更できるほど幸運ではない可能性もあります。もちろん、私たち自身に頼る方法があります。クライアントを使用して Cookie を保存し、取得したセッション ID をクライアントの Cookie に設定し、この値を session_id() 関数に渡します。具体的な方法は次のとおりです。
コードをコピー | |
session_start(); // セッションを開始します $_SESSION['count'] // セッション変数の数を登録します ; isset($PHPSESSID)?session_id($PHPSESSID):$PHPSESSID = session_id(); // $PHPSESSID が設定されている場合は、SessionID を $PHPSESSID に割り当て、そうでない場合は SessionID を生成します $_SESSION['count']++ // 変数 count に 1 を加算します ; setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // セッション ID を Cookie に保存します echo $count; // セッション変数 count の値を表示します ?> |
注: setcookie 行の 'PHPSESSID' は確実ではありません。変更マニアに悩まされているネットワーク管理者に遭遇した場合、最善の方法は phpinfo() 関数を使用して確認することです。 session.name の値。これはより科学的です。
http://www.bkjia.com/PHPjc/632236.html
。