練習問題

6.4 練習問題

本章で習った内容を元に練習問題を解いてください。

問1 次の設問①~⑤について○か×で答えなさい。

設問
① Webブラウザのアドレスバーに、直接URLを指定するとPOST送信になる。
② 部品名に[]を付けたデータをPHP側で取得する場合、$_POST[‘部品名[キー]’]と指定する。
③ Webアプリケーションのセキュリティ対策として、入力値チェックさえ行っておけばよい。
④ 出力データの無害化は「htmlspecialchars関数」、「htmlentities関数」を使って行う。
⑤ 入力データの「”」か「’」はスーパーグローバル変数に格納時に、自動エスケープ処理を行ってくれる。

問2 以下の実行結果になるように仕様に従い、入力値チェックを行うpractice0601.phpを作成しなさい。

実行結果

入力値チェックの仕様

①本のタイトル
・タイトルの空チェック

②本の価格
・価格の空チェック
・価格の数字チェック
・価格の有効範囲チェック(0~5000円以内なのか)

ソースコード

ソース・フォルダー: myproj_basic/ch06exercise
パッケージ: practiceForm1.php
アクセスURL:http://localhost/myproj_basic/ch06exercise/practiceForm1.php

practiceForm1.php

ソースコード

ソース・フォルダー: myproj_basic/ch06exercise
パッケージ: practice0601.php
アクセスURL:practiceForm1.phpからの画面遷移でアクセスされる

practice0601.php

問3 問2で作成したpractice0601.phpに出力データの無害化を行ったpractice0602.phpを作成しなさい。

作成仕様
・エスケープ処理を行う場所は$_POSTを使って変数へ値を代入する場所にする。
・出力データの無害化には「htmlentities関数」を利用する。
・htmlentities関数の第2引数には「ENT_QUOTES」を指定し、「”、’」もエスケープ処理の対象にする。

ソースコード

ソース・フォルダー: myproj_basic/ch06exercise
パッケージ: practiceForm2.php
アクセスURL:http://localhost/myproj_basic/ch06exercise/practiceForm2.php

practiceForm2.php

ソース・フォルダー: myproj_basic/ch06exercise
パッケージ: practice0602.php
アクセスURL:practiceForm2.phpからの画面遷移でアクセスされる

NEXT>> 6.5 練習問題 解答