<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/session.setup.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ja',
  ),
  'this' => 
  array (
    0 => 'session.configuration.php',
    1 => '実行時設定',
    2 => '実行時設定',
  ),
  'up' => 
  array (
    0 => 'session.setup.php',
    1 => 'インストール/設定',
  ),
  'prev' => 
  array (
    0 => 'session.installation.php',
    1 => 'インストール手順',
  ),
  'next' => 
  array (
    0 => 'session.constants.php',
    1 => '定義済み定数',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ja',
    'path' => 'reference/session/ini.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="session.configuration" class="section">
 <h2 class="title">実行時設定</h2>
 <p class="simpara">
<var class="filename">php.ini</var> の設定により動作が変化します。
</p>
 <p class="para">
 <table class="doctable table">
  <caption><strong>セッションの設定オプション</strong></caption>
  
   <thead>
    <tr>
     <th>名前</th>
     <th>デフォルト</th>
     <th>変更可能</th>
     <th>変更履歴</th>
    </tr>

   </thead>

   <tbody class="tbody">
    <tr>
     <td><a href="session.configuration.php#ini.session.save-path" class="link">session.save_path</a></td>
     <td>&quot;&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.name" class="link">session.name</a></td>
     <td>&quot;PHPSESSID&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.save-handler" class="link">session.save_handler</a></td>
     <td>&quot;files&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.auto-start" class="link">session.auto_start</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.gc-probability" class="link">session.gc_probability</a></td>
     <td>&quot;1&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.gc-divisor" class="link">session.gc_divisor</a></td>
     <td>&quot;100&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.gc-maxlifetime" class="link">session.gc_maxlifetime</a></td>
     <td>&quot;1440&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.serialize-handler" class="link">session.serialize_handler</a></td>
     <td>&quot;php&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.cookie-lifetime" class="link">session.cookie_lifetime</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.cookie-path" class="link">session.cookie_path</a></td>
     <td>&quot;/&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.cookie-domain" class="link">session.cookie_domain</a></td>
     <td>&quot;&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.cookie-secure" class="link">session.cookie_secure</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.2.0 より前のバージョンでは、デフォルト値は <code class="literal">&quot;&quot;</code> でした。</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.cookie-httponly" class="link">session.cookie_httponly</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.2.0 より前のバージョンでは、デフォルト値は <code class="literal">&quot;&quot;</code> でした。<code class="literal">&quot;&quot;</code></td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.cookie-samesite" class="link">session.cookie_samesite</a></td>
     <td>&quot;&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.3.0 から利用可能</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.use-strict-mode" class="link">session.use_strict_mode</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.use-cookies" class="link">session.use_cookies</a></td>
     <td>&quot;1&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.use-only-cookies" class="link">session.use_only_cookies</a></td>
     <td>&quot;1&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.referer-check" class="link">session.referer_check</a></td>
     <td>&quot;&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.cache-limiter" class="link">session.cache_limiter</a></td>
     <td>&quot;nocache&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.cache-expire" class="link">session.cache_expire</a></td>
     <td>&quot;180&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.use-trans-sid" class="link">session.use_trans_sid</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.trans-sid-tags" class="link">session.trans_sid_tags</a></td>
     <td>&quot;a=href,area=href,frame=src,form=&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.1.0 から利用可能</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.trans-sid-hosts" class="link">session.trans_sid_hosts</a></td>
     <td><code class="literal">$_SERVER[&#039;HTTP_HOST&#039;]</code></td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.1.0 から利用可能</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.sid-length" class="link">session.sid_length</a></td>
     <td>&quot;32&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.1.0 から利用可能。PHP 8.4.0 以降では非推奨。</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.sid-bits-per-character" class="link">session.sid_bits_per_character</a></td>
     <td>&quot;4&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.1.0 から利用可能。PHP 8.4.0 以降では非推奨。</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.upload-progress.enabled" class="link">session.upload_progress.enabled</a></td>
     <td>&quot;1&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.upload-progress.cleanup" class="link">session.upload_progress.cleanup</a></td>
     <td>&quot;1&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.upload-progress.prefix" class="link">session.upload_progress.prefix</a></td>
     <td>&quot;upload_progress_&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.upload-progress.name" class="link">session.upload_progress.name</a></td>
     <td>&quot;PHP_SESSION_UPLOAD_PROGRESS&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.upload-progress.freq" class="link">session.upload_progress.freq</a></td>
     <td>&quot;1%&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.upload-progress.min-freq" class="link">session.upload_progress.min_freq</a></td>
     <td>&quot;1&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-perdir">INI_PERDIR</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.lazy-write" class="link">session.lazy_write</a></td>
     <td>&quot;1&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td class="empty">&nbsp;</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.hash-function" class="link">session.hash_function</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.1.0 で削除されました。</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.hash-bits-per-character" class="link">session.hash_bits_per_character</a></td>
     <td>&quot;4&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.1.0 で削除されました。</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.entropy-file" class="link">session.entropy_file</a></td>
     <td>&quot;&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.1.0 で削除されました。</td>
    </tr>

    <tr>
     <td><a href="session.configuration.php#ini.session.entropy-length" class="link">session.entropy_length</a></td>
     <td>&quot;0&quot;</td>
     <td><strong><code><a href="info.constants.php#constant.ini-all">INI_ALL</a></code></strong></td>
     <td>PHP 7.1.0 で削除されました。</td>
    </tr>

   </tbody>
  
 </table>

 INI_* モードの詳細および定義については
<a href="configuration.changes.modes.php" class="xref">どこで設定を行うのか</a> を参照してください。
 </p>
 <p class="para">
  セッション管理システムは、<var class="filename">php.ini</var>ファイルに記述可能な多くの設定オ
  プションをサポートします。以下に概要を示します。
 <dl>

  
   <dt id="ini.session.save-handler">
    <code class="parameter">session.save_handler</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
      <code class="literal">session.save_handler</code> は、
      セッションに関連するデータの保存および取得時に使用するハンドラを定義します。
      デフォルトは、<code class="literal">files</code> です。各拡張モジュールで、
      独自の <code class="literal">save_handler</code> を使用できることに注意しましょう。
      インストール環境単位で登録されているハンドラを取得するには
      <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> を使用します。
      <span class="function"><a href="function.session-set-save-handler.php" class="function">session_set_save_handler()</a></span> も参照ください。
    </span>
   </dd>
  

  
   <dt id="ini.session.save-path">
    <code class="parameter">session.save_path</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
      <code class="literal">session.save_path</code> は、保存ハンドラに渡される
      引数を定義します。デフォルトのファイルハンドラを選択した場合、
      ファイルが作成される場所のパスになります。
      <span class="function"><a href="function.session-save-path.php" class="function">session_save_path()</a></span> も参照ください。
    </span>
    <p class="para">
     オプションの引数として <code class="literal">N</code>（数値）を指定できます。
     これはセッションファイルを分散して保存する際に
     ディレクトリ階層レベルを決定します。
     例えば、<code class="literal">&#039;5;/tmp&#039;</code>とすると
     <code class="literal">/tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If</code>
     という位置にセッションファイルを生成します。
     <code class="literal">N</code> を使用するには、これらすべてのディレクトリが
     事前に作成されている必要があります。
     そのためのシェルスクリプトが<var class="filename">ext/session</var>に
     <var class="filename">mod_files.sh</var>というファイル名であります。
     Windows 版の <var class="filename">mod_files.bat</var> もあります。
     また、0以上の <code class="literal">N</code> が指定されている場合には自動ガーベッジコレクション
     が機能しないことに注意してください。詳細は <var class="filename">php.ini</var> を見てください。
     また、<code class="literal">N</code> を指定する場合は、
     <code class="literal">session.save_path</code>を&quot;quotes&quot;で囲う必要があります。
     なぜならセパレータ(<code class="literal">;</code>) は
     <var class="filename">php.ini</var> ではコメントとしても利用されているからです。
    </p>
    <p class="para">
     ファイルストレージモジュールが作るファイルのモードは、デフォルトで 600 になります。
     このデフォルトを変更するには、オプションの引数 <code class="literal">MODE</code> を利用します。
     <code class="literal">N;MODE;/path</code> のように使い、<code class="literal">MODE</code>
     の部分に八進形式のモードを指定します。<code class="literal">MODE</code> を設定しても、そのプロセスの umask は変わりません。
    </p>
    <div class="warning"><strong class="warning">警告</strong>
     <p class="para">
      この設定を <var class="filename">/tmp</var> (デフォルト) のようにどこか
      らでも読み込み可能なディレクトリに設定した場合、サーバー上
      の他のユーザーがこのディレクトリのファイルのリストを取得すること
      により、セッションをハイジャックをすることが可能となります。
     </p>
    </div>
    <div class="caution"><strong class="caution">警告</strong>
     <p class="para">
      オプションのディレクトリレベル定数 <code class="literal">N</code> で、
      1 あるいは 2 以外の値を使うのは、大半のサイトでは不適切です。
      大量のディレクトリが必要になってしまうからです。たとえば、この値を 3 にすると、
      ファイルシステム上のディレクトリの数が <code class="literal">(2 ** session.sid_bits_per_character) ** 3</code> にもなり、
      ディスク容量や inode の無駄遣いになってしまいます。
     </p>
     <p class="para">
      <code class="literal">N</code> を 2 より大きくするのは、
      それを必要とするような大規模サイトに限るようにしましょう。
     </p>
    </div>
   </dd>
  

  
   <dt id="ini.session.name">
    <code class="parameter">session.name</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.name</code> はセッション名を指定し、
     クッキー名として使用されます。
     アルファベット文字のみで指定する必要があります。
     デフォルトは、<code class="literal">PHPSESSID</code> です。
     <span class="function"><a href="function.session-name.php" class="function">session_name()</a></span>も参照ください。
    </span>
   </dd>
  

  
   <dt id="ini.session.auto-start">
    <code class="parameter">session.auto_start</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.auto_start</code> はリクエスト開始時に
     セッションモジュールがセッションを自動的に開始するかどうかを
     指定します。デフォルトは、<code class="literal">0</code>(無効)です。
    </span>
   </dd>
  

  
   <dt id="ini.session.serialize-handler">
    <code class="parameter">session.serialize_handler</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.serialize_handler</code> は、シリアル化または
     シリアル化データを復元するために使用されるハンドラの名前を定義します。
     PHP シリアライズフォーマット (<code class="literal">php_serialize</code>)、
     PHP 内部フォーマット (<code class="literal">php</code> あるいは <code class="literal">php_binary</code>)、
     そして WDDX (<code class="literal">wddx</code>)
     に対応しています。WDDX は、PHP が<a href="ref.wddx.php" class="link">WDDX サポート</a>
     を有効にしてコンパイルされている場合のみ使用可能です。
     <code class="literal">php_serialize</code> はプレーンな serialize/unserialize
     関数を内部的に使っており、<code class="literal">php</code> や <code class="literal">php_binary</code>
     のような制約はありません。これらのシリアライズハンドラでは、$_SESSION
     の中で数値のインデックスや特殊文字
     (<code class="literal">|</code> や <code class="literal">!</code>)
     を含む文字列のインデックスを使えませんでした。
     <code class="literal">php_serialize</code> を使えば、
     スクリプトの終了時に数値インデックスや特殊文字インデックスのエラーが出ないようにできます。
     デフォルトは <code class="literal">php</code> です。
    </span>
   </dd>
  

  
   <dt id="ini.session.gc-probability">
    <code class="parameter">session.gc_probability</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.gc_probability</code>と
     <code class="literal">session.gc_divisor</code>の組み合わせでgc
    （ガーベッジコレクション）ルーチンの始動を制御します。
     デフォルトは、<code class="literal">1</code> です。
     <code class="literal">0</code> 以上の値でなければいけません。
     詳細は<a href="session.configuration.php#ini.session.gc-divisor" class="link">session.gc_divisor</a>
     をご覧ください
    </span>
   </dd>
  

  
   <dt id="ini.session.gc-divisor">
    <code class="parameter">session.gc_divisor</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.gc_divisor</code>と
     <code class="literal">session.gc_probability</code>の組み合わせで
     すべてのセッションの初期化過程でgc（ガーベッジコネクション）プロセス
     も始動する確率を制御します。確率は gc_probability/gc_divisor
     で計算されます。例えば、1/100は各リクエスト毎に1%の確率でGCプロセスが
     始動します。
     <code class="literal">session.gc_divisor</code>のデフォルトは<code class="literal">100</code>です。
     <code class="literal">0</code> より大きな値でなければいけません。
    </span>
   </dd>
  

  
   <dt id="ini.session.gc-maxlifetime">
    <code class="parameter">session.gc_maxlifetime</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.gc_maxlifetime</code> は、データが
     &#039;ごみ&#039; とみなされ、消去されるまでの秒数を指定します。
     ガベージコレクション (ごみの収集) は、
     セッションの開始時に行われます (<a href="session.configuration.php#ini.session.gc-probability" class="link">session.gc_probability</a> と
     <a href="session.configuration.php#ini.session.gc-divisor" class="link">session.gc_divisor</a>
     に依存します)。
     デフォルトは <code class="literal">1440</code> (24分) です。
    </span>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
      異なる値を <code class="literal">session.gc_maxlifetime</code> に指定している
      別々のスクリプトがセッションデータの保存場所を共有している場合、
      一番小さい設定値に達した時点でデータが消去されます。このような場合には、
      お互いに <a href="session.configuration.php#ini.session.save-path" class="link">session.save_path</a>
      を使用します。
     </span>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.referer-check">
    <code class="parameter">session.referer_check</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.referer_check</code> には、HTTP Referer に
      おいて確認を行う文字列を指定します。Refererがクライアントにより
     送信されており、かつ、指定した文字列が見付からない場合、埋め込
      まれたセッションIDは無効となります。デフォルトは空の文字列です。
    </span>
   </dd>
  

  
   <dt id="ini.session.entropy-file">
    <code class="parameter">session.entropy_file</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.entropy_file</code> は、
     セッションIDを作成する際の別のエントロピーソースとして使用する
     外部リソースへのパスを指定します。
     例としては、多くの UNIX で利用可能な <code class="literal">/dev/random</code>
     または <code class="literal">/dev/urandom</code> があげられます。
    </span>
    <span class="simpara">
     この機能は、Windows でもサポートされています。
     <code class="literal">session.entropy_length</code> にゼロ以外の値を設定すると、
     PHP は Windows Random API をエントロピーソースとして使います。
    </span>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
      PHP 7.1.0 で削除されました。
     </span>
     <span class="simpara">
      <code class="literal">/dev/urandom</code> あるいは <code class="literal">/dev/arandom</code>
      が使えるときは、
      それが <code class="literal">session.entropy_file</code> のデフォルトになります。
     </span>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.entropy-length">
    <code class="parameter">session.entropy_length</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.entropy_length</code> は、前記のファイルから
     読みこむバイト数を指定します。デフォルトは、<code class="literal">32</code>
     です。
    </span>
    <span class="simpara">
     PHP 7.1.0 で削除されました。
    </span>
   </dd>
  

  
   <dt id="ini.session.use-strict-mode">
    <code class="parameter">session.use_strict_mode</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.use_strict_mode</code> は、
     厳格なセッション ID モードを利用するかどうかを指定します。
     有効にすると、初期化していないセッション ID を受け付けなくなります。
     初期化していないセッション ID がブラウザから送信された場合は、
     新しいセッション ID をブラウザに送り返します。
     このモードを利用すると、セッションアダプションを利用したセッション固定攻撃からアプリケーションを保護できます。
     デフォルトは <code class="literal">0</code> (無効) です。
    </span>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
     一般的なセッションのセキュリティを踏まえると、
     <code class="literal">session.use_strict_mode</code> を有効にしておく必要があります。
     すべてのサイトでこれを有効にすることを推奨します。
     詳細は <span class="function"><a href="function.session-create-id.php" class="function">session_create_id()</a></span> のサンプルコードを参照ください。
     </span>
    </p></blockquote>
    <div class="warning"><strong class="warning">警告</strong>
     <p class="para">
      カスタムのセッションハンドラが <span class="function"><a href="function.session-set-save-handler.php" class="function">session_set_save_handler()</a></span> 経由で登録され、
      それが <span class="methodname"><a href="sessionupdatetimestamphandlerinterface.validateid.php" class="methodname">SessionUpdateTimestampHandlerInterface::validateId()</a></span> を実装せず、
      <code class="parameter">validate_sid</code> コールバックを提供しない場合、
      このディレクティブの値に関わらず、厳格なセッションIDモードは無効になります。
      <span class="classname"><a href="class.sessionhandler.php" class="classname">SessionHandler</a></span> クラスは <span class="methodname"><strong>SessionHandler::validateId()</strong></span>
      を実装して <em>いない</em> ことに特に注意して下さい。
     </p>
    </div>
   </dd>
  

  
   <dt id="ini.session.use-cookies">
    <code class="parameter">session.use_cookies</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.use_cookies</code>によりクライアント側にセッ
     ションIDを保存する際にクッキーを使用するかどうかを指定します。デ
     フォルトは<code class="literal">1</code> (有効)です。
    </span>
   </dd>
  

  
   <dt id="ini.session.use-only-cookies">
    <code class="parameter">session.use_only_cookies</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.use_only_cookies</code> は、
     このモジュールがクライアント側へのセッション ID の保存に
     Cookie <strong>のみ</strong>
     を使用することを指定します。
     この設定を有効にすることにより、セッション ID を URL
     に埋め込む攻撃を防ぐことができます。
     デフォルトは <code class="literal">1</code> (有効) となります。
    </span>
   </dd>
  


  
   <dt id="ini.session.cookie-lifetime">
    <code class="parameter">session.cookie_lifetime</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.cookie_lifetime</code> は、
     ブラウザに送信するクッキーの有効期間を秒単位で指定します。
     0 を指定すると &quot;ブラウザを閉じるまで&quot; という意味になります。
     デフォルトは、<code class="literal">0</code> です。
     <span class="function"><a href="function.session-get-cookie-params.php" class="function">session_get_cookie_params()</a></span> および
     <span class="function"><a href="function.session-set-cookie-params.php" class="function">session_set_cookie_params()</a></span> も参照ください。
    </span>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
      有効期限のタイムスタンプは、サーバーの時刻に基づいて決まります。
      クライアントのブラウザの時刻がこれと同じであるとは限りません。
     </span>
    </p></blockquote> 
   </dd>
  

  
   <dt id="ini.session.cookie-path">
    <code class="parameter">session.cookie_path</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
      <code class="literal">session.cookie_path</code>
      によりセッションクッキーで設定するパスを指定します。
      デフォルトは<code class="literal">/</code>です。
     <span class="function"><a href="function.session-get-cookie-params.php" class="function">session_get_cookie_params()</a></span>および
     <span class="function"><a href="function.session-set-cookie-params.php" class="function">session_set_cookie_params()</a></span>も参照ください。
    </span>
   </dd>
  

  
   <dt id="ini.session.cookie-domain">
    <code class="parameter">session.cookie_domain</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
      <code class="literal">session.cookie_domain</code>
      によりセッションクッキーで指定するドメインを指定します。
      デフォルトでは指定されません。
      この場合は、クッキーの仕様によって、クッキーを作成したサーバーの
      ホスト名が指定されます。
     <span class="function"><a href="function.session-get-cookie-params.php" class="function">session_get_cookie_params()</a></span> および
     <span class="function"><a href="function.session-set-cookie-params.php" class="function">session_set_cookie_params()</a></span> も参照ください。
    </span>
   </dd>
  

  
   <dt id="ini.session.cookie-secure">
    <code class="parameter">session.cookie_secure</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     クッキーはセキュアな接続を通じてのみ送信すべきものです。
     このオプションを <code class="literal">on</code> にすると、
     セッションは HTTPS 接続の場合にのみ動作します。
     <code class="literal">off</code> の場合には、HTTP と HTTPS 接続の両方で動作します。
     デフォルトは <code class="literal">off</code> です。
    </span>
   </dd>
  

  
   <dt id="ini.session.cookie-httponly">
    <code class="parameter">session.cookie_httponly</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     クッキーに対して、HTTP を通してのみアクセスできるようにします。
     つまり、JavaScript のようなスクリプト言語からはアクセスできなくなるということです。
     この設定を使用すると、XSS 攻撃によって ID を盗まれる危険性を減らせます
     (が、すべてのブラウザがこの設定をサポートしているというわけではありません)。
    </span>
   </dd>
  

  
   <dt id="ini.session.cookie-samesite">
    <code class="parameter">session.cookie_samesite</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     クロスサイトリクエストで、サーバーにクッキーを送信しないよう指示できるようにします。
     これを用いると、ユーザーエージェントによる生成元とは異なる場所への情報漏洩のリスクを軽減できます。
     また、CSRF攻撃に対する防御策のひとつにもなります。
     この仕組みはすべてのブラウザがサポートしているわけではないことに注意しましょう。
     この項目に空の値を設定した場合は、クッキーのSameSite属性は送信されません。
     <code class="literal">Lax</code> や <code class="literal">Strict</code> を設定した場合は、
     サイトをまたがる POST リクエストではクッキーを送信しません。GET リクエストの場合は、
     <code class="literal">Lax</code> はサイトをまたがるリクエストでもクッキーを送信しますが、
     <code class="literal">Strict</code> は送信しません。
    </span>
   </dd>
  

  
   <dt id="ini.session.cache-limiter">
    <code class="parameter">session.cache_limiter</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.cache_limiter</code>
     により、セッションページにおけるキャッシュ制御の方法を指定します。
     <code class="literal">nocache</code>、<code class="literal">private</code>、
     <code class="literal">private_no_expire</code> あるいは <code class="literal">public</code>
     のいずれかとなります。デフォルトは <code class="literal">nocache</code> です。
     これらの値の意味については
     <span class="function"><a href="function.session-cache-limiter.php" class="function">session_cache_limiter()</a></span> のドキュメントも参照ください。
    </span>
   </dd>
  


  
   <dt id="ini.session.cache-expire">
    <code class="parameter">session.cache_expire</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.cache_expire</code>によりキャッシュされた
     セッションページの有効期間を分単位で指定します。
     このオプションは、nocacheリミッタに関しては効果がありません。
     デフォルトは、<code class="literal">180</code>です。
     <span class="function"><a href="function.session-cache-expire.php" class="function">session_cache_expire()</a></span>も参照ください。
    </span>
   </dd>
  

  
   <dt id="ini.session.use-trans-sid">
    <code class="parameter">session.use_trans_sid</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.use_trans_sid</code>は、透過的なセッション
     IDの付加をするかどうかを指定します。
     デフォルトは、<code class="literal">0</code>(無効)です。
    </span>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
      URLに基づくセッション管理は、Cookieに基づくセッション管理と比べ
      てセキュリティリスクが大きくなります。例えば、ユーザーは、emailに
      より友人にアクティブなセッションIDを含むURLを送信する可能性があ
      り、また、ユーザーは自分のブックマークにセッションIDを含むURLを保
      存し、常に同じセッションIDで使用するサイトにアクセスする可能性
      があります。
     </span>
     <span class="simpara">
      PHP 7.1.0 以降では、https://php.net/ のような完全な URL
      パスが、透過的セッションID機能で扱われるようになります。
      これより前のバージョンでは、相対 URL パスだけが対象でした。
      リライト対象のホストは
      <a href="session.configuration.php#ini.session.trans-sid-hosts" class="link">session.trans_sid_hosts</a>
      で定義します。
     </span>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.trans-sid-tags">
    <code class="parameter">session.trans_sid_tags</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.trans_sid_tags</code>
     は、透過的セッションIDのサポートが有効な場合にどの HTML タグをリライトするかを指定します。
     デフォルトは
     <code class="literal">a=href,area=href,frame=src,input=src,form=</code>
     です。
    </span>
    <span class="simpara">
     <code class="literal">form</code> は特別なタグで、<code class="literal">&lt;input hidden=&quot;session_id&quot; name=&quot;session_name&quot;&gt;</code>
     がフォーム変数に追加されます。
    </span>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
      PHP 7.1.0 より前のバージョンでは、この目的で使われていた設定項目は
      <a href="outcontrol.configuration.php#ini.url-rewriter.tags" class="link">url_rewriter.tags</a>
      でした。
      PHP 7.1.0 以降は、<code class="literal">fieldset</code>
      が特別なタグとはみなされなくなります。
     </span>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.trans-sid-hosts">
    <code class="parameter">session.trans_sid_hosts</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.trans_sid_hosts</code> は、
     は、透過的セッションIDのサポートが有効な場合にどのホストをセッションIDつきにリライトするかを指定します。
     デフォルトは <code class="literal">$_SERVER[&#039;HTTP_HOST&#039;]</code> です。
     複数のホストを指定する場合は &quot;,&quot; で区切ってつなぎます。
     ホストとホストの間にスペースを入れることはできません。つまり、たとえば
     <code class="literal">php.net,wiki.php.net,bugs.php.net</code>
     のように指定します。
    </span>
   </dd>
  

  
   <dt id="ini.session.sid-length">
    <code class="parameter">session.sid_length</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.sid_length</code> は、セッション ID 文字列の長さを指定します。
     22 から 256 までの値が使えます。
    </span>
    <span class="simpara">
     デフォルトは 32 です。互換性を考慮するなら 32 や 40 などを使ってもかまいません。
     セッション ID は長ければ長いほど推測されにくくなります。少なくとも 32 を指定することを推奨します。
    </span>
    <div class="tip"><strong class="tip">ヒント</strong>
     <p class="para">
      互換性に関するメモ: 
      <code class="literal">session.hash_function</code>=0 (MD5) で
      <code class="literal">session.hash_bits_per_character</code>=4
      の場合、あるいは
      <code class="literal">session.hash_function</code>=1 (SHA1) で
      <code class="literal">session.hash_bits_per_character</code>=6
      の場合は 32 を使います。
      <code class="literal">session.hash_function</code>=0 (MD5) で
      <code class="literal">session.hash_bits_per_character</code>=5
      の場合は、26 を使います。
      <code class="literal">session.hash_function</code>=0 (MD5) で
      <code class="literal">session.hash_bits_per_character</code>=6
      の場合は、22 を使います。
      INI 設定で、セッション ID を少なくとも 128
      ビットにしておく必要があります。
      <code class="literal">session.sid_bits_per_character</code>
      に適切な値を指定することを忘れないようにしましょう。
      そうしないと、脆弱なセッション ID を使うことになってしまいます。
     </p>
    </div> 
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
      この設定は PHP 7.1.0 で導入されました。
     </span>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.sid-bits-per-character">
    <code class="parameter">session.sid_bits_per_character</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.sid_bits_per_character</code>
     エンコードされたセッション ID 文字のビット数を指定します。指定できる値は
     &#039;4&#039; (0-9, a-f)、&#039;5&#039; (0-9, a-v)、&#039;6&#039; (0-9, a-z, A-Z, &quot;-&quot;, &quot;,&quot;) です。
    </span>
    <span class="simpara">
     デフォルトは 4 です。大きいほどセッション ID が強力になります。
     大半のシステムでは、5 を推奨します。
    </span>
    <p class="para">
    </p>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
      この設定は PHP 7.1.0 で導入されました。
     </span>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.hash-function">
    <code class="parameter">session.hash_function</code>
    <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.hash_function</code> によりセッション ID
     を生成するために使用されるハッシュアルゴリズムを指定することが可能です。
     &#039;0&#039; は MD5 (128 ビット) で、&#039;1&#039; は SHA-1 (160 ビット) を意味します。
    </span>
    <p class="para">
     <a href="ref.hash.php" class="link">hash 拡張モジュール</a>
     の任意のアルゴリズムが (この拡張モジュールが使用可能な場合に)
     指定できます。たとえば
     <code class="literal">sha512</code> や
     <code class="literal">whirlpool</code> などです。
     サポートされているアルゴリズムの一覧は、
     <span class="function"><a href="function.hash-algos.php" class="function">hash_algos()</a></span> 関数で取得できます。
    </p>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <p class="para">
      この設定は、PHP 7.1.0 で削除されました。
     </p>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.hash-bits-per-character">
    <code class="parameter">session.hash_bits_per_character</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.hash_bits_per_character</code> により
     バイナリのハッシュデータを何らかの可読なデータに変換する際、
     それぞれの文字に何ビットストアさせるかを定義することが可能です。
     指定可能な値は、&#039;4&#039; (0-9, a-f)、&#039;5&#039; (0-9, a-v) そして
     &#039;6&#039; (0-9, a-z, A-Z, &quot;-&quot;, &quot;,&quot;) です。
    </span>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <p class="para">
      この設定は、PHP 7.1.0 で削除されました。
     </p>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.upload-progress.enabled">
    <code class="parameter">session.upload_progress.enabled</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     アップロードの進捗を追跡して <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> 変数に格納するかどうか。
     デフォルトは 1 で、この機能は有効になっています。
    </span>
   </dd>
  

  
   <dt id="ini.session.upload-progress.cleanup">
    <code class="parameter">session.upload_progress.cleanup</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     すべての POST データを読み終えた (つまり、アップロードが完了した)
     時点ですぐに進捗状況を消去するかどうか。
     デフォルトは 1 で、この機能は有効になっています。
    </span>
    <blockquote class="note"><p><strong class="note">注意</strong>: 
     <span class="simpara">
      この機能を有効にしておくことを強くおすすめします。
     </span>
    </p></blockquote>
   </dd>
  

  
   <dt id="ini.session.upload-progress.prefix">
    <code class="parameter">session.upload_progress.prefix</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     アップロードの進捗を <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> で管理するときに使うキーのプレフィックス。
     このキーを
     <code class="literal">$_POST[ini_get(&quot;session.upload_progress.name&quot;)]</code>
     の値と連結して、一意なインデックスを作ります。
    </span>
    <span class="simpara">
     デフォルトは &quot;upload_progress_&quot; です。
    </span>
   </dd>
  

  
   <dt id="ini.session.upload-progress.name">
    <code class="parameter">session.upload_progress.name</code>
    <span class="type"><a href="language.types.string.php" class="type string">string</a></span>
   </dt>
   <dd>
    <span class="simpara">
     進捗情報を <var class="varname"><a href="reserved.variables.session.php" class="classname">$_SESSION</a></var> に格納するときに使うキーの名前。
     <a href="session.configuration.php#ini.session.upload-progress.prefix" class="link">session.upload_progress.prefix</a>
     も参照ください。
    </span>
    <span class="simpara">
     <code class="literal">$_POST[ini_get(&quot;session.upload_progress.name&quot;)]</code>
     が渡されていない場合や存在しない場合は、アップロードの進捗を記録しません。
    </span>
    <span class="simpara">
     デフォルトは &quot;PHP_SESSION_UPLOAD_PROGRESS&quot; です。
    </span>
   </dd>
  

  
   <dt id="ini.session.upload-progress.freq">
    <code class="parameter">session.upload_progress.freq</code>
    <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span>
   </dt>
   <dd>
    <span class="simpara">
     アップロードの進捗を更新する頻度を定義します。
     バイト数 (100 バイトごとに進捗を更新するなど)
     あるいはパーセンテージ (ファイル全体のサイズの 1% ごとに進捗を更新するなど)
     で指定できます。
    </span>
    <span class="simpara">
     デフォルトは &quot;1%&quot; です。
    </span>
   </dd>
  

  
   <dt id="ini.session.upload-progress.min-freq">
    <code class="parameter">session.upload_progress.min_freq</code>
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>
   </dt>
   <dd>
    <span class="simpara">
     更新間隔の最小値。単位は秒。
     デフォルトは &quot;1&quot; (1 秒) です。
    </span>
   </dd>
  

  
   <dt id="ini.session.lazy-write">
    <code class="parameter">session.lazy_write</code>
    <span class="type"><a href="language.types.boolean.php" class="type bool">bool</a></span>
   </dt>
   <dd>
    <span class="simpara">
     <code class="literal">session.lazy_write</code> を 1 に設定すると、
     セッションのデータが変更されたときにだけ再書き込みを行います。
     デフォルトは 1 で、この機能は有効になっています。
    </span>
   </dd>
  

 </dl>
 </p>

 <p class="para">
  アップロードの進捗は、
  session.upload_progress.enabled を有効にして
  $_POST[ini_get(&quot;session.upload_progress.name&quot;)] を設定するまでは登録されません。
  この機能の詳細は <a href="session.upload-progress.php" class="link">セッションのアップロードの進捗</a>
  を参照ください。
 </p>

</div><?php manual_footer($setup); ?>