練習問題
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からの画面遷移でアクセスされる