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