)パラメータstr(string):エンコードする文字列。記号(+)にエンコードされます。以下は、「name=マイケル」という値を「sample.php」に送信する場合のリンクの例です。)に送信するリンクの例です。属性に設定することができます。することで再度入力しなおす場合などに、入力した値を残すことができます。属性のように、変数($text_input)を出力(echo)することで値を設定できます。短縮形を使って以下のように記述することもできます。?>"//以下と同じことです。属性で指定したファイルが読み込まれ、送信した際の画面の表示位置はリセットされページの先頭が表示されます。フォームがページの中ほどや後半にある場合で、自分自身($_SERVER['PHP_SELF'])に送信した際に、送信(submit)した際の表示位置を保持して、ページロード後もスクロール位置を変更しないで表示したいことがあります。した時の位置情報を取得して、ロード後の画面でその位置に戻すようにします。"hidden")を用意します。以下の例では、「name="scroll_top"」、「class="st"」としています。Javascript(jQuery)を記述します。イベント($('form').submit())を利用します。送信された際の位置を取得して変数「scroll_top」に代入します。使って、隠しフィールドの「value」属性に位置の情報をセットします。使ってロードされた際に、隠しフィールドにセットされた値を取得して、スクロール位置を設定します。メソッドの両方の場合に対応するように、値の取得は「$_REQUEST」スーパーグローバル変数を使用しています。エラー制御演算子を使用しています。」というようなクエリが付いていたのはこのためです。以下では、それぞれのフォーム部品について見ていきます。テキストボックステキストボックスは、1行の文字列の入力をする際に使用します。1行(入力)テキストフィールドと呼ぶこともあります。属性に「text」を指定します。属性を指定すると、ブラウザで入力する文字数を制限することができるので、サーバーに最大文字数を超える文字列が送られることはありませんが、これはセキュリティのための機能ではありません。悪意のある攻撃者はブラウザを使わずにサーバーにデータを送信することができるので、最大文字数を超える文字列をサーバーに送信できてしまいます。そのためユーザーからの入力値はサーバーで受け取った時に必ず検証する必要があります。以下はテキストボックスのサンプルです。属性が「""」なので、自分自身(現在のファイル)に送信します。処理も同じファイルに記述されています。いう連想配列(スーパーグローバル変数)に格納されます。)入力された値を取得することができます。短縮(省略)形で設定しています。これにより、再度入力しなおす場合などに、入力した値を残すことができます。定義されているかを調べます。エスケープ処理して変数「$text」に代入しています。定義されていない場合は初期値を変数「$text」に代入しています。属性で指定した送信先に送るときに使用します。属性に「submit」を指定します。属性に「send」を指定して、送信ボタンがクリックされたかを調べる例です。これにより、送信ボタンがクリックされて「post_03.php」に移動した場合と「post_03.php」を直接開いた場合の処理を分岐することができます。"送信ボタンがクリックされました。"送信ボタンはクリックされていません。いう連想配列(スーパーグローバル変数)に格納されます。$_POST['send']が定義済みになっています。パスワード入力ボックスパスワード入力ボックスは入力したテキストが●やアスタリスク(*)などに置き換えて表示されます。属性に「password」を指定します。属性の値)の設定は行わないようにします。属性を指定すると、ブラウザで入力する文字数を制限することができるので、サーバーに最大文字数を超える文字列が送られることはありませんが、これはセキュリティのための機能ではありません。悪意のある攻撃者はブラウザを使わずにサーバーにデータを送信することができるので、最大文字数を超える文字列をサーバーに送信できてしまいます。そのためユーザーからの入力値はサーバーで受け取った時に必ず検証する必要があります。以下は送信されたパスワードが一致しているかを調べる例です。通常はパスワードの長さや含まれる文字の種類等を検証するなどの処理が必要と思いますが、この例ではセキュリティに関しては考慮していません。"<p>パスワードが一致しました。"<p>パスワードが一致しませんでした。value="確認"></form>隠しフィールド隠しフィールドは、画面上に表示させず(フォーム部品として表示させないで)にプログラムにデータを送信する時に使用します。属性に「hidden」を指定します。属性:値を指定します。隠しフィールドは表示されませんが、送信ボタンをクリックすると隠しフィールドの値が送られます。value="隠しフィールドの値です。はまだ存在していません(定義されていません)。index:)が表示されないようにしています。属性を指定すると、その項目についてはあらかじめチェックの付いた状態となります。1つだけを選択させたい場合は、ラジオボタンを使用します。属性の値は、そのチェックボックスが選択されている時に送信される値になります。属性)を共有することができ、同時に複数の項目を選択することができます。複数のチェックボックス複数のチェックボックスを使う場合は、以下の2つの方法があります。属性の値の1対1のペアとして送信する。付けて、配列としてデータを送信する。属性の値を異なるものにする例です。付けて、配列としてデータを送信する例です。属性の値が表示されます。キーとの関係がわかりやすいように、キーも出力しています。属性に値そのものではなく、数値を指定にすることにより、入力検証をする際に「数値」であることをチェックすることによりセキュリティが向上します。属性を数値(整数)に限定して出力の前に値を検証する例です。チェックボックスを生成すると簡単です。以下のチェックボックスを生成します。Sakeラジオボタンラジオボタンは、複数の項目から1つを選ぶ際に使用します。複数の中から一つしか選択できない点がチェックボックスと異なります。属性で同じ名前を付けます。属性を指定すると、その項目についてはあらかじめチェックの付いた状態となります。以下は、選択された値を表示する例です。属性は数値を指定する例です。type="text")との違いは、入力欄内で任意の改行ができることです。タグに変換する必要があります。要素とは異なり、開始タグと終了タグのペアで使います。タグの間に記述された内容が初期値として使われます。cols="30">この文字列が初期値として表示されます。</textarea>この文字列が初期値として表示されます。属性:入力欄の高さを行数で指定します。入力内容がこの高さを超えた場合は、入力欄にスクロールバーが表示されます。属性:入力欄の横幅を文字数で指定します。属性を指定した場合でも、ブラウザにより見た目の高さは異なります。以下はテキストエリアのサンプルです。"この文字列が初期値として表示されます。属性が「""」なので、自分自身(現在のファイル)に送信します。処理も同じファイルに記述されています。いう連想配列(スーパーグローバル変数)に格納されます。)入力された値を取得することができます。短縮(省略)形で設定しています。これにより、再度入力しなおす場合などに、入力した値を残すことができます。定義されているかを調べます。エスケープ処理して変数「$textarea」に代入しています。短縮(省略)形で設定しています。改行文字を挿入した値を出力しています。セレクトメニューセレクトメニューは複数の項目から任意の項目を選択するときに使用します。要素を使って記述します。属性で指定した名前のデータとして送信されます。属性:フォーム部品を識別するための名前を指定します。要素の値とセットで送信されます。属性:メニューの表示行数を指定します。以上を指定するとリスト形式のメニューになります。属性:この属性を指定すると、メニューの中から複数の項目を選択できるようになります。キーを押しながらクリックすると、複数を選択することができます。以下のような属性を指定できます。属性:その項目が選択されたときにサーバーに送信される値を指定します。要素内のテキスト)が送信されます。属性:その項目を初期状態で選択されている状態にします。属性を指定することができます。属性:この属性が指定された部品は、選択することができなくなります。Island以下は、セレクトメニューから送られたデータを受け取る例です。属性が設定されているセレクトメニューから送られたデータを受け取る例です。付けて、配列としてデータを送信します。セレクトメニューを生成する例です。value="送信"></form>以下のようなフォームが出力されます。セレクトメニューを生成して、セレクトメニューから送られたデータを受け取る例です。value="送信"></form>日付入力フォームセレクトメニューを使って、日付入力のフォームを生成する方法です。文を使って繰り返し処理することでより少ないコードで記述することができます。関数で「Y」を指定して現在の「年(4桁)」を取得します。関数を使って日付の妥当性を検証しています。この関数は引数に数値を取るのである意味値の検証にもなります。関数でエスケープ処理しています。'日は有効な日付です。'日は無効な日付です。