ホームページ >バックエンド開発 >PHPの問題 >PHPのセッション時間を設定する方法

PHPのセッション時間を設定する方法

藏色散人
藏色散人オリジナル
2021-03-29 09:42:342264ブラウズ

php でセッション時間を設定する方法: まず php.ini を開いてセッション設定セクションを探し、次に「session.gc_maxlifetime」を設定してセッションの存続期間を設定します。

PHPのセッション時間を設定する方法

#この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

php 設定セッション (期限切れ) 、無効、有効期間)

PHP でのセッションの設定には、セッションの値の設定や、有効期限、無効化、有効期間の直接設定など、さまざまな側面があります。次のエディターで紹介します。それらの使い方をあなたに。

まず、php.ini でセッションを設定する方法を見てみましょう。php.ini を開いて、セッション設定セクションで次の項目を探します。コードは次のとおりです:

   session.save_path = 
         "N;/path"
        
 
         session.save_path = 
         "C:/Temp"
           #此处以你自己设定的路径为准

この設定により、セッション ストレージ ディレクトリでマルチレベル ハッシュを実行できます。「N」は設定するディレクトリ レベルを表し、次の「/path」は、セッション ファイルが保存されるルート ディレクトリのパス。たとえば、次の形式に設定し、コードは次のとおりです:

 session.save_path = 
         "2;C:/Temp"

上記の設定は、php を保存することを意味します。セッション ファイルは 2 つのレベルのディレクトリに保存され、各レベルのディレクトリは 0 ~ 9 で、合計 36 文字の英数字 a ~ z がディレクトリ名として使用されます。このようにして、セッションを保存できるディレクトリは 36*36 に達し、合計で 36*36 個になります。 1332 フォルダの数です。単一サーバーにはこれで十分だと思います。システム アーキテクチャ設計について言えば、複数のサーバー間でセッション データを共有するには、ディレクトリ レベルを 3 以上に上げることができます。

セッション有効期限の設定

PHP でのセッション トピックの続き。PHP では、セッションのライフ サイクルは主に、次のように session.gc_maxlifetime を設定することによって設定されます。次のコード:

       <?php 
        
 
         ini_set
         (
         &#39;session.gc_maxlifetime&#39;
         , 3600); 
         //设置时间 
        
 
         ini_get
         (
         &#39;session.gc_maxlifetime&#39;
         );
         //得到ini中设定值 
        
 
         ?>

[推奨学習:

PHP ビデオ チュートリアル ]

以下は他の人によってカプセル化された関数を提供しますが、私はテストしていません参考までに、コードは次のとおりです:

       <?php 
        
 
         function 
          start_session(
         $expire 
          = 0) 
        
 
         { 
        
 
          
         if 
          (
         $expire 
          == 0) { 
        
 
          
         $expire 
          = 
         ini_get
         (
         &#39;session.gc_maxlifetime&#39;
         ); 
        
 
          
         } 
         else 
          { 
        
 
          
         ini_set
         (
         &#39;session.gc_maxlifetime&#39;
         , 
         $expire
         ); 
        
 
          
         } 
        
 
          
         if 
          (emptyempty(
         $_COOKIE
         [
         &#39;PHPSESSID&#39;
         ])) { 
        
 
          
         session_set_cookie_params(
         $expire
         ); 
        
 
          
         session_start(); 
        
 
          
         } 
         else 
          { 
        
 
          
         session_start(); 
        
 
          
         setcookie(
         &#39;PHPSESSID&#39;
         , session_id(), time() + 
         $expire
         ); 
        
 
          
         } 
        
 
         } 
        
 
         ?>

Usage:

Join start_session(600);//600 後に期限切れになります秒。

セッションは期限切れになりません

php.ini 設定ファイルを開き、次のように 3 行を変更します。

1.session.use_cookies

これを変更します。値は 1 に設定され、cookie は sessionid

2 と session.cookie_lifetime

を渡すために使用されます。これは、SessionID がクライアント Cookie に保存される時間を表します。デフォルトは 0 です。これは、ブラウザが閉じるとすぐに SessionID が無効になることを意味します ...PHP セッションが永続的に使用できないのはこのためです。それでは、大きいと思われる数値に設定しましょう。999999999 はどうでしょうか。それでOKです。それだけです。

3. session.gc_maxlifetime

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

以上です。すべて問題ありません。もちろん、信じられない場合は、テストして確認してください。セッションをセットアップし、10 日半後に戻ってきて、コンピュータが正常に動作していないかどうかを確認してください。電源がオフまたはダウンしている場合でも、セッション ID は表示されます。

もちろん、あなたにサーバーを制御する権限がなく、php.ini 設定を変更できる私ほど幸運ではない可能性もあります。もちろん、Cookieを保存するにはクライアントを使用する必要がありますよね?取得したsessionIDをクライアントのCookieに保存し、そのCookieの値を設定し、その値をsession_id()関数に渡します。具体的な方法は以下の通りです。 :

rree

以上がPHPのセッション時間を設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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