Я написал простую веб-форму, которая будет принимать информацию о пользователе (через POST) и вставлять ее в базу данных.Это не мой типичный тип программирования, но он был достаточно прост, чтобы у меня не было никаких проблем.
В любом случае, веб-форма существует на 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
), которое запускается при отправке и сохраняет данные в базе данных.
Iнаписал очень простую 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?Я очень напуган тем, насколько хрупким и легко ломается мое приложение.