PHP の最も強力な機能の一つは、HTML フォームを処理する手段です。 理解するべき重要な基本概念は、あるフォームの中の全てのフォーム要素が、 自動的に PHP スクリプトで利用可能になるということです。 詳細は、マニュアルのセクション PHPの外部からくる変数 および PHP でフォームを使用する例を参照してください。以下に HTML フォームの例を示します。
このフォームに関して特別なところはありません。これは通常の HTML フォームで特殊なタグは全く使用していません。 ユーザがこのフォームを記入し、投稿ボタンを押した時、 action.php ページがコールされます。 このファイルには、以下のようなコードを記述します。
htmlspecialchars() および
(int) の部分以外は、何を行っているかは明らかでしょう。
htmlspecialchars() は、html での特殊な文字を適切にエンコードし、
HTML タグや Javascript をページ内に仕込めないようにします。
また、age フィールドには数値が入ることがわかっているので、これを
integer 型に 変換
します。これにより、おかしな文字が入力されることを防ぎます。
これらの処理を PHP に自動的に行わせるためには、
filter 拡張モジュールを使用します。
変数 $_POST['name']
と
$_POST['age']
は PHP により自動的に設定されます。
前の部分では、スーパーグローバル$_SERVER
を使用しましたが、
ここでは、全ての POST データを保持するスーパーグローバル
$_POST を導入しています。
フォームのメソッドが POST であることに注意してください。
GET メソッドを使用している場合、
フォームの情報は代わりにスーパーグローバル
$_GET に代入されます。リクエストデータの発信源に留意しない場合には、
スーパーグローバル変数
$_REQUEST
を使用することもできます。この変数は、GET, POST, COOKIE, FILE
データの混ざったものが含まれます。
import_request_variables() 関数も参照してください。
XForms の入力を PHP で扱うことも可能ですが、たいていの場合は HTML フォームのほうが快適に使用できるでしょう。 XForms は初心者向けのものではありませんが、気になるかたもいるかもしれません。 機能概要の節にある XForm から受信したデータの処理方法 を参照ください。