用c语言写cgi程序(4)---处理请求post get。文本框,下拉列表框。
来源:互联网 发布:java ftp上传附件 编辑:程序博客网 时间:2024/06/10 06:27
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- char InputBuffer[4096];
- int main(int argc, char *argv[]) {
- int ContentLength; /*数据长度*/
- int x;
- int i;
- char *p;
- char *pRequestMethod; /* METHOD属性值 */
- setvbuf(stdin,NULL,_IONBF,0); /*关闭stdin的缓冲*/
- printf("Content-type: text/html/n"); /*从stdout中输出,告诉Web服务器返回的信息类型*/
- printf("/n"); /*插入一个空行,结束头部信息*/
- /* 从环境变量REQUEST_METHOD中得到METHOD属性值 */
- pRequestMethod = getenv("REQUEST_METHOD");
- if (pRequestMethod==NULL) {
- return 0;
- }
- if (_stricmp(pRequestMethod,"POST")==0) {
- p = getenv("CONTENT_LENGTH"); /*从环境变量CONTENT_LENGTH中得到数据长度*/
- if (p!=NULL) {
- ContentLength = atoi(p);
- } else {
- ContentLength = 0;
- }
- if (ContentLength>sizeof(InputBuffer)-1) {
- ContentLength = sizeof(InputBuffer)-1;
- }
- i = 0;
- while (i<ContentLength) { /*从stdin中得到Form数据*/
- x = fgetc(stdin);
- if (x==EOF) break;
- InputBuffer[i++] = x;
- }
- InputBuffer[i] = '/0';
- ContentLength = i;
- DecodeAndProcessData(); /*具体译码和处理数据,该函数代码略*/
- } else
- if (_stricmp(pRequestMethod,"GET")==0) {
- p = getenv("QUERY_STRING"); /*从环境变量QUERY_STRING中得到Form数据*/
- if (p!=NULL) {
- strncpy(InputBuffer,p,sizeof(InputBuffer));
- DecodeAndProcessData(); /*具体译码和处理数据,该函数代码略*/
- }
- }
- printf("<HEAD><TITLE>Submitted OK</TITLE></HEAD>/n"); /*从stdout中输出返回信息*/
- printf("<BODY>The information you supplied has been accepted.</BODY>/n");
- return 0;
- }
0 0
- 用c语言写cgi程序(4)---处理请求post get。文本框,下拉列表框。
- 用c语言写cgi程序(4)---处理请求post get。文本框,下拉列表框。
- 用c语言写cgi程序(4)---处理请求post get。文本框,下拉列表框。
- C语言CGI程序--POST表单/GET表单处理
- lighttpd + CGI,用c语言写cgi程序
- 用c语言写cgi程序(1)
- 用c语言写cgi程序(2)
- 用c语言写cgi程序(1)
- C语言写CGI程序
- C语言写CGI程序
- C语言写CGI程序
- C语言写CGI程序
- 在CGI程序中POST和GET消息的处理
- 在CGI程序中POST和GET消息的处理
- CGI程序中POST和GET消息的处理
- 用C语言写CGI
- C语言写CGI程序【转】
- C语言写CGI程序【转】
- poj解题报告——2388
- 用c语言写cgi程序(1)
- codeforces #284
- Logstash 快速入门实例
- 多线程
- 用c语言写cgi程序(4)---处理请求post get。文本框,下拉列表框。
- 最大带权子树(hihocoder变种题)
- 嵌入式CGI开发之旅——2
- 超级宝典第三章剔除弃用的例子
- 内核裁剪
- 嵌入式CGI开发之旅——3
- HighCharts实现双Y轴
- 嵌入式CGI开发之旅——4
- 红米1s W/C版 可行的双系统方案(仅分析尚未实施)