13,005
回編集
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> | ||