topic: session-cookie (session / cookie / login / CSRF) / ch03 — `setcookie()` と `$_COOKIE` / 演習 01

📝 ドリル 01 — stdin から `$_COOKIE['name']` を組み立てて出力

問題

採点ランナーは CLI 直実行なので、answer.php の冒頭で 標準入力の 1 行を Cookie 文字列として parse_str$_COOKIE に展開 してください (スタブはコードに含めて構いません)。

$_COOKIE['name'] を取り出し、"こんにちは、{name}さん" を 1 行出力してください。name が無ければ 'guest' をフォールバックとして使ってください。

このドリルの入力例 (tests/input.txt):

name=太郎

期待される出力:

こんにちは、太郎さん

採点

php scripts/grade.php topics/13-session-cookie/ch03-cookie-basic/drill/01-read-cookie/

ヒント

$line = trim(fgets(STDIN) ?: '');
parse_str($line, $_COOKIE);
$name = $_COOKIE['name'] ?? 'guest';
echo "こんにちは、{$name}さん\n";
▶ 3v4l で実行

本物の Cookie 動作で確認したい場合

cd topics/13-session-cookie/ch03-cookie-basic/drill/01-read-cookie/
php -S localhost:8000 answer.php

ブラウザの開発者ツール (Application → Cookies) で name=太郎 を手動追加してリロード。

テストケース

標準入力

name=太郎

期待される出力

こんにちは、太郎さん

📄 starter.php(雛形)

このコードから書き始めてください。

<?php

// 採点用スタブ: 標準入力の 1 行を Cookie 文字列として $_COOKIE に展開
$line = trim(fgets(STDIN) ?: '');
parse_str($line, $_COOKIE);

// TODO: $_COOKIE['name'] を取り出す (無ければ 'guest')
// TODO: "こんにちは、{name}さん" を 1 行出力する
✅ 解答例を見る(自分で解いてから)
<?php

// 採点用スタブ: 標準入力の 1 行を Cookie 文字列として $_COOKIE に展開
$line = trim(fgets(STDIN) ?: '');
parse_str($line, $_COOKIE);

$name = $_COOKIE['name'] ?? 'guest';
echo "こんにちは、{$name}さん\n";