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";
▶ 3v4l で実行

本物のセッション動作で確認したい場合

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";