PHP

[PHP]set_error_handler()完全解説|カスタムエラーハンドラの実装とエラー処理の実践パターン

はじめにPHPのデフォルトエラーハンドラは、エラーをブラウザやログに出力するだけです。本番環境でユーザーにエラー詳細を見せてしまったり、エラーをデータベースやSlackに通知できなかったりと、そのままでは不十分な場面が多くあります。set_...
PHP

[PHP]session_write_close()完全解説|セッションロック解放と並列リクエスト最適化の実践

はじめにPHPのセッションはファイルベースのハンドラを使う場合、session_start() から session_write_close()(または スクリプト終了)までファイルロックを保持し続けます。このロックのせいで、同一セッション...
PHP

[PHP]session_unset()完全解説|セッション変数の削除方法とsession_destroy()との違いを徹底解説

はじめにPHPでセッションを扱うとき、「セッションに保存したデータを消したい」という場面は頻繁に訪れます。ログアウト処理・一時データのクリア・ウィザードフォームのリセットなど、目的に応じて正しい関数を選ぶことが重要です。session_un...
PHP

[PHP]session_status()完全解説|セッション状態の確認方法と安全な制御フローの実装

はじめにPHPでセッションを扱うとき、「今セッションは開始されているのか?」「既に開始済みなのにもう一度 session_start() を呼んでいないか?」といった状態の確認が欠かせません。これを正確に知るための関数が session_s...
PHP

[PHP]session_start()完全解説|セッション開始の仕組みからオプション設定・セキュリティ対策まで

はじめにPHPでログイン機能・カート・ユーザー設定などを実装するとき、最初に必ず登場するのが session_start() です。「とりあえず先頭に書けば動く」という認識で使われがちですが、オプション設定・セキュリティ対策・パフォーマンス...
PHP

[PHP]session_set_save_handler()完全解説|カスタムセッションハンドラの実装とデータベース・Redis保存の実践例

はじめにPHPのセッションはデフォルトでファイルシステムに保存されますが、本番環境ではデータベースやRedis・Memcachedへの保存が求められる場面が多くあります。複数サーバー構成でのセッション共有、セッションデータの監査ログ、有効期...
PHP

[PHP]session_set_cookie_params()完全解説|セッションCookieのセキュリティ設定と実践的な使い方

はじめにPHPのセッションはブラウザのCookieを通じてセッションIDを管理します。このCookieの設定が甘いと、XSS(クロスサイトスクリプティング)によるセッションIDの盗難・CSRF攻撃・中間者攻撃など深刻なセキュリティリスクに直...
PHP

[PHP]session_save_path()完全解説|セッション保存先の取得・変更方法と本番環境での安全な設定

はじめにPHPのセッションデータはデフォルトでサーバーのファイルシステムに保存されます。その保存先ディレクトリを制御するのが session_save_path() です。デフォルトのパス(多くの環境では /tmp や /var/lib/p...
PHP

[PHP]session_reset()完全解説|セッションデータの変更を取り消す「元に戻す」機能の使い方

はじめにセッションを使った処理の中で、「途中まで変更したセッションデータを、まだ保存していないうちに元に戻したい」という場面はありませんか? たとえばウィザード形式のフォームで途中キャンセルした場合や、トランザクション的にセッションを扱いた...
PHP

[PHP]session_register_shutdown()完全解説|セッションの安全なシャットダウン処理と自動書き込みの仕組み

はじめにPHPのセッションは通常、スクリプト終了時に自動で書き込み・クローズされます。しかしフレームワークやカスタムハンドラを使う場合、セッションの終了タイミングを明示的にコントロールしたい場面が出てきます。session_register...