第8章 リクエスト情報 / 第2回 模擬試験

PHPのセッションに関する次の記述のうち、誤っているものはどれか。

セッションを開始するには`session_start()`を呼び出す。
セッションのデータは`$_SESSION`スーパーグローバル変数に格納する。
セッションを破棄するには`session_destroy()`を使用する。
セッションIDは常にURLパラメータとしてのみ送信される。 正解
解説
セッションIDは、通常はブラウザに保存されるCookie(既定では`PHPSESSID`という名前)を通じてやり取りされます。Cookieが無効な環境向けに、`session.use_trans_sid`を有効にするとURLパラメータでセッションIDを引き継ぐ設定も可能ですが、これは代替手段であり「常にURLパラメータのみ」というのは誤りです。 他の選択肢が正しい理由は次の通りです。 ・`session_start()`を呼び出すことでセッションが開始(または既存セッションが再開)されます。 ・セッション中に保持したいデータは`$_SESSION`スーパーグローバル配列に格納します(例: `$_SESSION['user_id'] = 1;`)。 ・セッションを完全に破棄するには`session_destroy()`を呼び出します(`$_SESSION`配列自体をクリアするには合わせて`session_unset()`や`$_SESSION = [];`も使われます)。 例: ``` session_start(); $_SESSION['user_id'] = 1; // ログアウト処理 session_unset(); session_destroy(); ``` (参照: 独習PHP 第4版 第8章 リクエスト情報 8.7節 セッション情報 p.387〜395)