/* Google Analytics ▽ */ /* Google Analytics △ */

WEB制作の勉強メモ / 猫脳人間

HTML CSS JavaScript ActionScript jQuery WordPress PHP Illustrator Photoshop Flash … 猫サイズの脳でも覚えるぞ と…

PHPのテスト(02) メールフォーム

<form>
<p>
<label for="name">お名前: </label>
<input type="text" name="name" id="name">
</p>

<p>
<label for="email">Eメール: </label>
<input type="text" name="email" id="email">
</p>

<p>
<label for="opinion">ご意見: </label>
<textarea name="opinion" id="opinion"></textarea>
</p>

<input type="submit" value=" 送信 ">
</form>

上記フォームから
(HTMLファイルから部分的に抜粋しているものとみなしてください)
confirm.php へデータ送信された時、その内容を confirm.php に表示したい。
指示に従い、コードを記述せよ。

<?php
if(!isset($_POST['']) || !isset($_POST['email']) || !isset($_POST['opinion'])) {
header('Location:./form.php');
exit;
}

// 【問1】ここに POST送信されたデータを、任意に作成した変数に代入するコードを記述せよ

?>

<table>
<tbody>

<tr>
<th>お名前: </th>
<td>
<?php
//【問2】ここに問1で作った変数を利用し、XSS対策を施した【名前】を表示せよ
?>
</td>
</tr>

<tr>
<th>Eメール: </th>
<td>
<?php
//【問3】ここに問1で作った変数を利用し、XSS対策を施した【Eメール】を表示せよ
?>
</td>
</tr>

<tr>
<th>お問合せ内容: </th>
<td>
<?php
//【問4】ここに問1で作った変数を利用し、XSS対策を施した【ご意見】を表示せよ
?>
</td>
</tr>

</tbody>
</table>
【問1】上記コード内の【問1】の場所に、POST送信されたデータを、任意に作成した変数に代入するコードを記述せよ。

以下に記述してみよう。






【問2】ここに問1で作った変数を利用し、XSS対策を施した【お名前】を表示せよ





【問3】ここに問1で作った変数を利用し、XSS対策を施した【Eメール】を表示せよ




【問4】ここに問1で作った変数を利用し、XSS対策を施し、さらにフォームで入力された改行が反映される形で記述すること





















【答え】

【問1】
$name = $_POST['name'];
$email = $_POST['email'];
$opinion = $_POST['opinion'];

【問2】
<?php echo htmlspecialchars($name,ENT_QUOTES,'UTF-8'); ?>

【問3】
<?php echo htmlspecialchars($age,ENT_QUOTES,'UTF-8'); ?>

【問4】
<?php echo nl2br(htmlspecialchars($opinion,ENT_QUOTES,'UTF-8')); ?>
XSS、 htmlspecialchars、ENT_QUOTES など「???」と思ったら

クロスサイトスクリプティング - Wikipedia

PHP: htmlspecialchars - Manual

クロスサイトスクリプティング対策としてやるべき5つのこと | 三度の飯とエレクトロン

gihyo.jp

www.weblio.jp