ユーザーの情報を(POST経由で)取得してデータベースに挿入する簡単なWebフォームを作成しました。これは私の典型的なタイプのプログラミングではありませんが、基本的には問題はありませんでした。CGIプログラミングをどのように同期させますか?
とにかく、WebフォームはHTMLページに存在し、かなり標準です。以下の(単純化の例)のようなもの:
<form method="post" action="/cgi-bin/submit_form" enctype="x-www-form-encoded" id="frm">
<input id="txtName" type="text" />
<input id="txtPhone" type="text" />
<input id="btnSubmit" type="submit" value="Submit" />
</form>
そして、私はそれが送信されたときに実行され、データベースにデータを格納するC++アプリケーション(cgi-bin/submit_form
)を持っています。
私は次のようになりますこれは、基本的に出力を解析し、非常に基本的なCGIライブラリを書いた:
txtName=<name>&txtPhone=<phone>&btnSubmit=Submit
とライブラリは、このようなmap<string, string>
にそれを解析します
myMap["txtName"] = "John";
myMap["txtPhone"] = "1.800.555.5555";
これは、データベースに入れるのがかなり簡単です。しかし、私のアプリケーションがhtml要素の変数名(txtName、txtPhone)に完全に依存していることは明らかです。それらのいずれかが変更された場合、私のアプリケーションは突然動作を停止します。
私の質問は:どのようにして、サーバー側のアプリケーションにCGIからデータを取得するプロセスを同期させることができますか?
私はhtmlとサーバースクリプトの両方を担当していることは非常に幸運です。しかし、ある人がウェブサイトを管理し、別の人がスクリプトを管理するシナリオが存在しなければならず、何も悪いことが起こらないように調整する必要があります。
これらのタイプの状況では、ICDを使用できます。たとえば、XMLデータを渡すときには、XSDを使用してデータ構造を定義することができます。
CGIプログラミングでこれがありますか?私は非常に壊れやすいと私のアプリケーションを壊すのは簡単に怖いです。
ありがとう。それはまさに私が意味することです:HTML要素名と解析されるフィールドの調整。私はあなたの洞察に感謝します。 – Eric