PHP

[PHP]show_source()完全解説|ソースコードのシンタックスハイライト表示とhighlight_file()との関係

はじめにPHPファイルのソースコードをブラウザ上でシンタックスハイライト付きで表示したい場面があります。ドキュメント生成・コードレビューツール・学習用サンプル表示・デバッグ支援など、コードを人間が読みやすい形で出力する用途です。show_s...
PHP

[PHP]setcookie()完全解説|Cookie送信の基本から安全な実装・SameSite設定まで

はじめにWebアプリケーションでユーザーの状態を保持するとき、セッション以外の選択肢として広く使われるのがCookieです。PHPでCookieを送信するための標準関数が setcookie() です。「ただCookieを送るだけ」と思われ...
PHP

[PHP]setrawcookie()完全解説|URLエンコードなしのCookie送信とsetcookie()との使い分け

はじめにPHPでCookieを送信するとき、多くの場面では setcookie() を使います。しかし setcookie() はCookieの値を自動的にURLエンコード(urlencode())します。JWT・Base64・JSON形式...
PHP

[PHP]set_include_path()完全解説|インクルードパスの設定方法とオートローダーとの使い分け

はじめにPHPで require や include を使ってファイルを読み込む際、ファイルパスを毎回フルパスで書くのは大変です。set_include_path() を使うと、PHPがファイルを検索するディレクトリのリスト(インクルードパ...
PHP

[PHP]set_exception_handler()完全解説|未捕捉例外のカスタムハンドラ実装と本番環境での安全なエラー処理

はじめにPHPで try-catch を使っても、捕捉し忘れた例外やコード全体を包むことが難しい例外が発生した場合、デフォルトではエラーメッセージがそのままブラウザに表示されます。本番環境でスタックトレースや内部構造が露出することは、セキュ...
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() です。「とりあえず先頭に書けば動く」という認識で使われがちですが、オプション設定・セキュリティ対策・パフォーマンス...