第7章 フォーム
教科書「プログラミングPHP 第2版」
上級試験は、オライリーから出版されているプログラミングPHP 第2版を教科書に出題されます。
フォームメソッド
- GETとPOSTが利用可能。formタグのmethodで指定する
- GETはパラメータをエンコードして、URLに付加する
- POSTはパラメータをHTTPリクエストに付加する
- GETパラメータ付きのURLをブックマークできる(アクセス毎にページコンテンツが変化しない)
- ショッピングカートの購入手続きやデータベースの更新などをGETで行うのは不適切
パラメータ
- php.iniでmagic_quotes_gpcオプションを有効にすると、クッキー/GET/POSTに自動的にaddslashesを実行
- 同一ページをフォーム生成と処理とに使用できる
メソッドがPOSTかどうかで振り分け
GET/POSTデータがあるかどうかで振り分けis_null - 検索ボックス等で、ユーザーが入力したデータを表示する
- セレクトボックスなどで、複数のパラメータを選択可能。パラメータ名に[]を付ける
ファイルアップロード
- $_FILES配列を使用する
- サイズの制限。php.iniでupload_max_filesize。フォームのパラメータでMAX_FILE_SIZE
- $_FILESのキー
name、ブラウザ(クライアント)から送信される名前
type、アップロードされたファイルのMIME type
size、アップロードされたファイルのバイト数。巨大すぎるファイルをアップロードしようとしたとき、この値は0
tmp_name、サーバー上の一時的なファイル名。巨大すぎるファイルをアップロードしようとしたとき、この値はnone - アップロードが成功したかどうかはis_uploaded_fileでチェックする
- 一時ファイルを置くデフォルトのフォルダは、php.iniのupload_tmp_dirで指定する
バリデーション
- ユーザーからの入力チェックが必要
- サーバーサイドで必ずチェックする
- 正整数(年齢など)の入力チェックはstrspn($age, "1234567890") == strlen($age)。正規表現ならpreg_match('/^\d+$/', $age)
- メールアドレスのチェックは大変。@マークのチェックはpreg_match('/@.\..+$/')
※原書を元にしています。日本語訳本とは用語等が異なる可能性があります。
Copyright (C) 2003-2018. PHP で WEB 作成 All rights reserved.