「PHPの基礎 - セッション」の版間の差分

ナビゲーションに移動 検索に移動
82行目: 82行目:
<br>
<br>
つまり、ユーザエンゲージメントやコンバージョン率の向上に役立つデータを収集できる。<br>
つまり、ユーザエンゲージメントやコンバージョン率の向上に役立つデータを収集できる。<br>
<br><br>
== セッション管理 ==
==== セッションの保存場所 ====
デフォルトでは、一時ファイルとしてサーバのファイルシステムに保存される。<br>
一般的には、以下に示すディレクトリのいずれかに保存される。<br>
* /tmp
* /var/lib/php/sessions
* /tmp/sessions
<br>
セッションファイルの名前は"sess_"で始まり、その後にセッションIDが続く。<br>
<br>
保存場所の設定は、php.iniファイルの<code>session.save_path</code>項目で設定できる。<br>
<br>
補足<br>
* セッションの保存方法は変更可能で、データベースやRedisなどに保存することもできる。
* セキュリティ上、本番環境では適切なパーミッションの設定が重要である。
* 定期的なセッションクリーンアップは、サーバリソースの効率的な管理に重要である。
<br>
==== セッションの削除方法 ====
===== プログラムで削除 =====
<syntaxhighlight lang="php">
// 現在のセッションのデータを全て削除
session_unset();
// セッションを破棄
session_destroy();
// セッションクッキーも削除する場合
if (isset($_COOKIE[session_name()])) {
    setcookie(session_name(), '', time()-42000, '/');
}
</syntaxhighlight>
<br>
===== 手動での削除 =====
* セッションファイルを直接削除する場合
rm /tmp/sess_*
<br>
* セッションガベージコレクションの設定する場合<br>php.iniファイルにおいて、以下に示すパラメータが設定できる。
** session.gc_maxlifetime
**: セッションの最大生存時間
** session.gc_probability / session.gc_divisor
**: ガベージコレクション実行の確率
<br><br>
<br><br>


案内メニュー