topic: session-cookie (session / cookie / login / CSRF) / ch02 — `session_start()` と `$_SESSION` の基本 / 演習 01
📝 ドリル 01 — `$_SESSION['name']` への代入と取得
問題
$_SESSION['name'] に '太郎' を代入し、その値を 1 行で出力する PHP を書いてください。
採点ランナーは CLI 直実行なので、answer.php の冒頭で session 用スタブ (use_cookies=0 / 固定 session_id) を入れて Session を擬似化してください。スタブは starter.php に最初から書いてあります。
期待される出力:
太郎
採点
php scripts/grade.php topics/13-session-cookie/ch02-session-basic/drill/01-set-and-get/
ヒント
// 採点用スタブの後に、こう書く
$_SESSION['name'] = '太郎';
echo $_SESSION['name'] . "\n";本物のセッション動作で確認したい場合
cd topics/13-session-cookie/ch02-session-basic/drill/01-set-and-get/
php -S localhost:8000 answer.php
ブラウザで http://localhost:8000/ を開く。リロードしても同じ値が表示される (Session が PHPSESSID で保たれている)。
テストケース
期待される出力
太郎
📄 starter.php(雛形)
このコードから書き始めてください。
<?php
// 採点用スタブ: CLI で session_start() を安定動作させるための前処理
error_reporting(E_ERROR);
ini_set('session.use_cookies', '0');
ini_set('session.use_only_cookies', '0');
$tmpDir = sys_get_temp_dir() . '/dojo_l13_' . getmypid();
@mkdir($tmpDir, 0700, true);
session_save_path($tmpDir);
session_id('TESTSESSIONID');
@session_start();
// TODO: $_SESSION['name'] に '太郎' を代入する
// TODO: $_SESSION['name'] を 1 行で出力する (末尾改行を付ける)
✅ 解答例を見る(自分で解いてから)
<?php
// 採点用スタブ: CLI で session_start() を安定動作させるための前処理
error_reporting(E_ERROR);
ini_set('session.use_cookies', '0');
ini_set('session.use_only_cookies', '0');
$tmpDir = sys_get_temp_dir() . '/dojo_l13_' . getmypid();
@mkdir($tmpDir, 0700, true);
session_save_path($tmpDir);
session_id('TESTSESSIONID');
@session_start();
$_SESSION['name'] = '太郎';
echo $_SESSION['name'] . "\n";