代码用这个:
http://wenda.sogou.com/question/28759329.html
再贴一下:
- #include < stdio.h >
- #include < stdlib.h >
- int main(void)
- {
- char *data;
- long m,n;
- printf("%s%c%c ","Content-Type:text/html;charset=gb2312",13,10);
- printf("< TITLE >乘法结果< /TITLE > ");
- printf("< H3 >乘法结果< /H3 > ");
- data = getenv("QUERY_STRING");
- if(data == NULL)
- printf("< P >错误!数据没有被输入或者数据传输有问题");
- else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)
- printf("< P >错误!输入数据非法。表单中输入的必须是数字。");
- else
- printf("< P >%ld和%ld的成绩是:%ld。",m,n,m*n);
- return 0;
- }
- 编译运行出.exe的文件 。是否要把后缀名改为.cgi?
- 此程序的表单如下:
- < FORM ACTION="/cgi-bin/mult.cgi" >
- < P >请在下面填入乘数和被乘数,按下确定后可以看到结果。
- < INPUT NAME="m" SIZE="5" >
- < INPUT NAME="n" SIZE="5" >< BR >
- < INPUT TYPE="SUBMIT" VALUE="确定" >
- < /FORM >
上面的有点问题,printf第一行最后要有回车/n;
表单中提交方式要为get,看这个解析:
- GET 和 POST
- 表单从浏览器发给服务器有两种方法. GET 和 POST.
- 我们上面谈论的方法,实际是GET,它将数据打包放置在环境变量QUERY_STRING中作为URL整体的一部分传递给服务器。
- POST做很多类似GET同样的事情, 不同的地方就是它是分离地传递数据给脚本. 你的脚本通过标准输入获取这些数据. (有些Web服务器是存储在临时文件中.) 这个QUERY_STRING环境变量将不再设置.
- 那你用那个方法呢? POST是个安全的方法, 尤其如果你的表单中有很多数据的话. 当你用GET, 这个服务器就分配变量QUERY_STRING给所有的表单数据, 但是这个变量可存储量是有限的. 换句话说,如果你有很多数据但是你又用GET,你会丢失很多数据.
- 如果你用POST, 你可以尽可能多地使用数据, 因为这些数据从来也不分配到一个变量里.