用c语言写cgi程序(1)时间:2022-05-03 06:47:45代码用这个: 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 >错误!输入数据非法。表单中输入的必须是数字。");elseprintf("< 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, 你可以尽可能多地使用数据, 因为这些数据从来也不分配到一个变量里.