Web アプリ入門 / ch04 — `$_POST` でフォームデータを受け取る / 演習 02

📝 ドリル 02 — `$_POST` で複数フィールド (登録フォームの受け口)

問題

$_POST['name']$_POST['email'] を受け取り、"登録: {name} / {email}" を 1 行出力する PHP を書いてください。

採点ランナーは CLI 直実行なので、冒頭で stdin の 1 行を parse_str$_POST に展開 するスタブを置いてください。

このドリルの入力例:

name=太郎&email=taro@example.com

期待される出力:

登録: 太郎 / taro@example.com

採点

php scripts/grade.php topics/12-web/ch04-post-params/drill/02-post-form/

ヒント

$name  = $_POST['name']  ?? '';
$email = $_POST['email'] ?? '';
echo "登録: {$name} / {$email}\n";
▶ 3v4l で実行

@ などの記号も parse_str がよしなに扱ってくれる (URL エンコードされていれば自動でデコード)。

テストケース

標準入力

name=太郎&email=taro@example.com

期待される出力

登録: 太郎 / taro@example.com

📄 starter.php(雛形)

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

<?php

// 採点用スタブ: 標準入力の 1 行を query string として $_POST に展開
$query = trim(fgets(STDIN) ?: '');
parse_str($query, $_POST);

// TODO: $_POST['name'] と $_POST['email'] を取り出す
// TODO: "登録: {name} / {email}" を 1 行出力する
✅ 解答例を見る(自分で解いてから)
<?php

// 採点用スタブ: 標準入力の 1 行を query string として $_POST に展開
$query = trim(fgets(STDIN) ?: '');
parse_str($query, $_POST);

$name  = $_POST['name']  ?? '';
$email = $_POST['email'] ?? '';
echo "登録: {$name} / {$email}\n";