ホームページ  >  記事  >  バックエンド開発  >  PHP_PHPチュートリアルでセッションが無期限になる解決策と実装方法

PHP_PHPチュートリアルでセッションが無期限になる解決策と実装方法

WBOY
WBOYオリジナル
2016-07-13 17:39:43773ブラウズ

PHP セッションが期限切れにならないようにするには、あなたはそれほど憂鬱な問題に遭遇したことはないかもしれませんが、私はそれに遭遇し、非常に憂鬱でした。

当社のカスタマーサービス担当者、つまり限られた数のカスタマーサービス担当者のみが使用できるシステムを初期段階で開発しました。数日前、突然この質問を提起したのは、限られたカスタマー サービス スタッフでした。私たちが顧客の問題を解決したいと思っていると、短時間 (ページを操作しない 30 分) ごとに、システムはログを記録する必要があることを要求しました。クライアントの時間が遅れました…これは面白くありません

お客様は神様、唯一の神様です。そこで上司は、カスタマー サービス スタッフが人為的に期限切れにしない限り、PHP のセッションは期限切れにならないことを理解するように私たちに求めました。セキュリティ上の理由からこの期限切れのない動作は理解できません。遅延を理由に以前のプログラムを変更したくありません。でも仕方ない、まだ変わらないといけない。

プログラムを変更しないのが最善の方法です。プログラムを変更すると、テスト部門が私と同じように非常に憂鬱になるため、システム環境の設定を変更するだけです。実際には、php.ini 設定を開きます。ファイルを開き、次のように 3 行を変更します。

1. session.use_cookies

この値を 1 に設定し、Cookie を使用してセッション ID を渡します

2. session.cookie_lifetime

これは、SessionIDがクライアントのCookieに保存される時間を表しており、デフォルトは0で、ブラウザを閉じるとすぐにSessionIDが無効になることを意味します...これが原因でPHPセッションが使用できなくなります。では、999999999 はどうでしょうか。これで十分です。

3. session.gc_maxlifetime

これは、セッションデータがサーバー側に保存される時間です。この時間を超えると、セッションデータは自動的に削除されます。それから、これも99999999に設定します。

それだけです。すべて問題ありません。もちろん、信じられない場合は、テストして確認してください。コンピューターが停電したりクラッシュしたりしなければ、セッションをセットアップして 10 日半後に戻ってきます。 、このセッションIDはまだ表示されています。

もちろん、あなたにサーバーを制御する権限がなく、php.ini の設定を変更できるほど幸運ではない可能性もあります。もちろん、私たち自身に頼る方法もあります。クライアントを使用して Cookie を保存し、取得したセッション ID をクライアントの Cookie に設定し、この値を session_id() 関数に渡す必要があります。具体的な方法は次のとおりです。

リーリー

しばらくしてからこのページに戻ってきて (どのくらい時間が経ったでしょうか? 自分の目で確認してください)、出力される数値が離れたときよりも 1 大きくなっている場合、それは正しいです。数値が大幅に大きくなっている場合は、誰かがそうしている可能性があります。このテストは正確ではありません、またちょっと外に出てください

注: setcookie 行の 'PHPSESSID' は確実ではありません。変更マニアに悩まされているネットワーク管理者に遭遇した場合、最善の方法は phpinfo() 関数を使用して確認することです。 session.name の値。これはより科学的です。

http://www.bkjia.com/PHPjc/486271.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/486271.html技術記事 PHP セッションが期限切れにならないようにします。あなたはこのような憂鬱な問題に遭遇したことがないかもしれませんが、私はその問題に遭遇し、非常に憂鬱でした。 社内のカスタマーサービススタッフのみが使用できるシステムを初期段階で開発しました...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。