この記事では、参考値となる有効期限を厳密に管理したPHPでのセッションの設定方法を中心に紹介します。以下のエディタで見てみましょう
1.phpセッション有効期間
PHPのセッションデフォルトの有効期間は1440秒(24分)、クライアントが24分以上更新しない場合分が経過すると、現在のセッションはリサイクルされ、無効になります。
ユーザーがブラウザを閉じるとセッションが終了し、セッションも無効になります。
php.iniのsession.gc_maxlifetimeを変更してセッションのライフサイクルを設定できますが、この時間を超えた直後にセッション情報が削除されるという保証はありません。 GC は確率で起動されるため、長時間起動しない場合があります。この場合、session.gc_maxlifetime を超えた後も、多数のセッションが引き続き有効になります。
2.session.gc_maxlifetime、session.gc_probability、session.gc_pisor の説明
session.gc_maxlifetime = 30 は、セッション ファイルが 30 秒経過してもアクセスされない場合、期限切れのセッションとみなされ、待機していることを意味します。 GCリサイクル。
GCプロセス呼び出しの確率はsession.gc_probability/session.gc_pisorによって計算され、session.gc_pisorのデフォルトは1000です。
session.gc_probability = 1000の場合、GCプロセスは毎回session_start()を実行します。リサイクルを実行するために毎回呼び出されます。
session.gc_probability/session.gc_pisor の確率を増やすと役に立ちますが、パフォーマンスに重大な影響を及ぼします。
3. セッションの有効期限を厳密に制御する
1. memcache/Redis を使用してセッションを保存し、有効期限を設定します。memcache/redis のリサイクルメカニズムは確率に基づいていないため、セッションは期限切れになると無効になります。
2. PHP のみを使用して実装し、セッション クラスを作成し、セッションの書き込み時に有効期限を書き込みます。読み取りの際は、有効期限に基づいて有効期限が切れているかどうかを判断します。
<?php /** * Session控制类 */ class Session{ /** * 设置session * @param String $name session name * @param Mixed $data session data * @param Int $expire 超时时间(秒) */ public static function set($name, $data, $expire=600){ $session_data = array(); $session_data['data'] = $data; $session_data['expire'] = time()+$expire; $_SESSION[$name] = $session_data; } /** * 读取session * @param String $name session name * @return Mixed */ public static function get($name){ if(isset($_SESSION[$name])){ if($_SESSION[$name]['expire']>time()){ return $_SESSION[$name]['data']; }else{ self::clear($name); } } return false; } /** * 清除session * @param String $name session name */ private static function clear($name){ unset($_SESSION[$name]); } } ?>
デモ:
<?php session_start(); $data = '123456'; session::set('test', $data, 10); echo session::get('test'); // 未过期,输出 sleep(10); echo session::get('test'); // 已过期 ?>
phpでのセッションタイムアウト厳密な制御Example_PHPチュートリアル
php session _PHP の有効期限を厳密に制御しますチュートリアル
php セッション有効期限を厳密に管理する_PHPチュートリアル_プログラミング技術
以上がPHPで有効期限を厳密に設定したセッションを設定する方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。