アタマのひきだし

webプログラミング情報メモ

HTML & CSSの基本

フォームについての個人的メモ

作者のデータを隠居して送信

データ送信「info」という名前と「secret」汎用プログラムに、違った動作をさせたい場合などに使用。

<input type="hidden" name="info" value="secret" />
読みとり専用

作者指定のデータが必要でも、それをユーザーから隠さず、きちんと表示しておく方が望まし場合も。HTML 4.0では、input要素、textarea要素にreadonly属性を設定、データ表示しつつユーザーによる変更を禁止。

<input type="text" readonly="readonly" name="info" value="読みとり専用です" />

HTML 4.0に対応していないブラウザだと編集できる。作者の設定したデータを固定して送信は、hidden型のinput要素を使う。

データ送信とURLエンコード

フォームのコントロールから入力されたデータは、送信命令(submit型のinput要素)により、サーバーへ送信。英数字以外のデータは、利用者が入力したままの形ではなく、%と数字やアルファベットで構成、「URLエンコード形式」に変換。だいたい、次のようなイメージになるらしい。

%8FZ%8F%8A=Tokyo&%8E%81%96%BC=Masahide+Kanzaki

「URLエンコード」では、フォーム入力されたデータを次のように変換: - それぞれのデータ(文字列)の中で、スペース文字を+に変換 - さらに英数字と一部記号以外のものを%とその文字を表す2桁の16進数に変換 - 変数名(name)と内容(value)を = で結ぶ - 各項目のデータを & で連結

結果、「住所」という変数名に対し「Tokyo」という値、「氏名」という変数名に対し「Masahide Kanzaki」という値がデータとして送信。

GETとPOSTの使い分け

getは、何かをゲットする(取り出す)のが本来の役割。getはクエリがURIの一部になる。postは「投稿する」を意味。メッセージの書き込み、新規データの登録、何かをプログラムに送って内容を書き換えるような場合はpostを使う。

原則、検索など常に一定の結果を伴うものはget、新しいデータの送信・登録はpost。

GETメソッドを応用し、URLデータを送信

フォームを使わず、データを直接CGIプログラムに送信。 (例)kwという名前で送ったデータをトリガーにし、データベースを検索する、dbase.cgiプログラム。

<a href="/cgi-bin/dbase.cgi?kw=CGI">CGI</a>

アンカーでインクルード。用語をクリックで、説明をデータベースで検索、表示する仕掛けを提供。この方法で複数の項目を送信し、HTMLを記述、項目を連結する”&"は、文字実体参照で記入。

情報元:「ごく簡単なHTMLの説明」