Как передать данные таблицы HTML в CGI и переполнение стека

Это мой HTML-код. Я хочу передать данные таблицы в мой CGI-скрипт, используя c ++.

    <table>
<thead>
<th>Ex. Date</th>
<th>Security<br /> Symbol</th>
<th>Factor</th>
</thead>
<tbody>
<tr>
<td>29/01/1993</td>
<td>uaasset</td>
<td>333</td>
</tr>
<tr>
<td>11/06/1995</td>
<td>ibm</td>
<td>7</td>
</tr>
</tbody>
</table>
</div><br />

<input type="submit" value="Save" />
</form>

Здесь я разместил свой код CGI.

char *data;
char* lpszContentLength;
int nContentLength;

lpszContentLength = getenv("CONTENT_LENGTH");
if(lpszContentLength == NULL)
return -1;
nContentLength = atoi(lpszContentLength);
if(nContentLength == 0)
data = (char*) malloc(nContentLength+1);
if(data == NULL)
return -1;
memset(data, 0, nContentLength+1);
if(fread(data, 1, nContentLength, stdin) == 0)  // get the data
return -1;

if(ferror(stdin))   // die if there was an fread error
return -1;

cout << data<<"<br>";

Теперь я не получил никаких данных для моего CGI. Почему я не могу передать данные таблицы в CGI. Я думаю, чтобы передать данные таблицы из JavaScript. Но я не знаю, как вызвать скрипт cgi с помощью javascript и как передать данные в cgi из javascript. Мне нужно хранить данные таблицы в моем TextFile. Есть ли идея реализовать это в CGI & с ++?

0

Решение

С html вы не можете опубликовать тег таблицы, потому что это просто вывод, который нужно сделать на веб-страницах HTML, вы должны опубликовать данные в форме отправки.

<form onsubmit="document.getElementById('hdnFormField').value = document.getElementById('tblData').innerHTML;" >
<table id="tblData">
...yourTable..
</table>
<input type="hidden" name="hdnFormField" id="hdnFormField" />
<input type="submit" value="Save" />
</form>

и на спине, и вы должны прочитать Request.Form["hdnFormField"], Извините, я не знаю, как читать в CGI.

0

Другие решения

HTTP поддерживает 2 разных способа передачи данных на страницу: GET и POST.

ПОЛУЧИТЬ:
когда браузер открывает URL: http://example.com?param1=value1&param2 = значение2
В ваш cgi-скрипт будут помещены такие данные: param1 => value, param2 => value2. Чтобы получить эти данные из C, вы можете получить их из окружения:

char* val1 = getenv("param1");
char* val2 = getenv("param2");

СООБЩЕНИЕ:
Post -> браузер отправляет все данные в теле http запроса. Все данные, которые отправляются в cgi, передаются через стандартный ввод.

char Buffer[512]={0};
int InputLength = atoi( getenv("INPUT_LENGTH") );
InputLength = min( InputLength, sizeof(Buffer)-1 ); /* Avoid buffer overflow */
fread( Buffer, InputLength, 1, stdin );

Javascript:
GET: Отправить запрос на получение очень просто. Если вы используете jQuery и хотите отправить запрос GET через ajax, используйте такой код:

$.ajax({
url: '/yourpage.cgi?param1=value1&param2=value2',
});

СООБЩЕНИЕ:

$.post("/yourpage.cgi", { param1: "value1", param2: "value2" } );

Удачи 😉

0

По вопросам рекламы [email protected]