ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHPチュートリアルで無期限セッションのソリューションアイデアと実装方法を共有
社内の限られたカスタマーサービス担当者のみが利用できるシステムを初期段階で開発しました。数日前、突然この質問を提起したのは、限られたカスタマー サービス スタッフでした。私たちが顧客の問題を解決したいと思っていると、短時間 (ページを操作しない 30 分) ごとに、システムはログを記録する必要があることを要求しました。で、お客様の時間…とても不愉快です
お客様は神様、唯一の神様です。そこで上司は、カスタマー サービス スタッフが人為的に期限切れにしない限り、PHP のセッションは期限切れにならないことを理解するように私たちに求めました。セキュリティ上の理由からこの期限切れのない動作は理解できません。遅延を理由に以前のプログラムを変更したくありません。でも仕方ない、まだ変わらないといけない。
プログラムを変更しないのが最善の方法です。プログラムが変更されると、テスト部門は私と同じように非常に憂鬱になるでしょう。その場合、システム環境の構成を変更する唯一の方法は、実際には非常に簡単です。ファイルを開き、次のように 3 行を変更します:
1. session.use_cookies
この値を 1 に設定し、cookie を使用して sessionid を渡します
2. session.cookie_lifetime
これは、SessionID がクライアント Cookie に保存される時間を表します。デフォルトは 0 です。これは、ブラウザが閉じるとすぐに SessionID が期限切れになることを意味します。このため、PHP セッションは永続的に使用できません。そのため、非常に大きいと思われる数値に設定しましょう。 、999999999はどうですか、それは大丈夫です!
3. session.gc_maxlifetime
これは、セッションデータがサーバー側に保存される時間です。この時間を超えると、セッションデータは自動的に削除されます。そして、これも99999999に設定します。
それだけです。すべて問題ありません。もちろん、信じられない場合は、テストして確認してください。コンピューターが停電したりクラッシュしたりしなければ、セッションをセットアップして 10 日半後に戻ってきます。 、このセッションIDはまだ表示されています。
もちろん、あなたにサーバーを制御する権限がなく、php.ini の設定を変更できるほど幸運ではない可能性もあります。もちろん、私たち自身に頼る方法もあります。クライアントを使用して Cookie を保存し、取得したセッション ID をクライアントの Cookie に設定し、この値を session_id() 関数に渡します。 具体的な方法は次のとおりです。コード