如何将 HTML 表数据传递给 cgi 和 c++
How to pass HTML Table Data to cgi and c++
这是我的html代码。我想使用 c++ 将表数据传递给我的 CGI 脚本。
<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传递表数据。但是我不知道如何使用javascript调用cgi脚本以及如何将数据从javascript传递给cgi。我需要将表数据存储到我的文本文件中。有什么想法可以在cgi和c ++中实现这一点吗?
使用 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 中读入。
HTTP 支持两种不同的方式将数据传递到页面:GET 和 POST。
获取:当浏览器打开网址时:http://example.com?param1=value1¶m2=value2到你的cgi脚本将输入这样的数据:param1 =>值,param2 =>值2。要从 C 获取此数据,您可以从环境中获取它们:
char* val1 = getenv("param1");
char* val2 = getenv("param2");
发布:发布 -> 浏览器发送 http 请求正文中的所有数据。发送到cgi的所有数据都经过stdin。
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 并希望通过 ajax 发送 GET 请求,请使用以下代码:
$.ajax({
url: '/yourpage.cgi?param1=value1¶m2=value2',
});
发布:
$.post("/yourpage.cgi", { param1: "value1", param2: "value2" } );
祝你好运;-)
相关文章:
- 如何在 html 页面中插入 cgi 应用程序的输出?
- lighttpd:启用cgi二进制文件的核心转储
- Luci 无法启动请求的 CGI 程序:/www/cgi-bin/sample.cgi:执行错误
- IIS不会运行C CGI程序
- CGI程序的自定义输出缓冲区,运算符重载
- 如何使用CGI流式传输运动jpeg
- C 程序运行为Apache CGI程序无法通过SHMGET访问共享存储器
- 使用 CGI C++下载文件
- 如何使超链接调用相同的C++CGI进程
- 如何使用Java发送HTTP GET,并使用用C++编写的CGI应用程序打印QUERY_STRING环境变量
- 无法在 Kubuntu 10 上运行 c++ cgi。检查了所有 apache 配置+exec+cgi-bin+api
- 我被迫使用.cgi扩展名吗?
- C++ 在使用ifstream时,在Apache下运行的CGI文件失败
- 如何将 HTML 表数据传递给 cgi 和 c++
- 让cgi应用程序始终在c++中运行
- 将CGI中的错误消息重定向到Apache日志文件
- 在 Apache 上运行一个 C++ CGI 程序
- 使用C++CGI解决服务器错误500时遇到问题
- 从 cgi POST 数据中获取输入
- 使用C++ CGI 脚本输入的异常