用c语言写cgi程序(1)

来源:互联网 发布:java ftp上传附件 编辑:程序博客网 时间:2024/05/21 08:35

代码用这个:

http://wenda.sogou.com/question/28759329.html

再贴一下:

[xhtml] view plaincopy
  1. #include < stdio.h >  
  2. #include < stdlib.h >  
  3. int main(void)  
  4. {  
  5. char *data;  
  6. long m,n;  
  7. printf("%s%c%c ","Content-Type:text/html;charset=gb2312",13,10);  
  8. printf("< TITLE >乘法结果< /TITLE > ");  
  9. printf("< H3 >乘法结果< /H3 > ");  
  10. data = getenv("QUERY_STRING");  
  11. if(data == NULL)  
  12. printf("< P >错误!数据没有被输入或者数据传输有问题");  
  13. else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)  
  14. printf("< P >错误!输入数据非法。表单中输入的必须是数字。");  
  15. else  
  16. printf("< P >%ld和%ld的成绩是:%ld。",m,n,m*n);  
  17. return 0;  
  18. }  
  19. 编译运行出.exe的文件 。是否要把后缀名改为.cgi?  
  20. 此程序的表单如下:  
  21. < FORM ACTION="/cgi-bin/mult.cgi" >  
  22. < P >请在下面填入乘数和被乘数,按下确定后可以看到结果。  
  23. < INPUT NAME="m" SIZE="5" >  
  24. < INPUT NAME="n" SIZE="5" >< BR >  
  25. < INPUT TYPE="SUBMIT" VALUE="确定" >  
  26. < /FORM >   

 

上面的有点问题,printf第一行最后要有回车/n;

表单中提交方式要为get,看这个解析:

 

[xhtml] view plaincopy
  1. GET 和 POST  
  2. 表单从浏览器发给服务器有两种方法.  GET 和 POST.  
  3.   
  4. 我们上面谈论的方法,实际是GET,它将数据打包放置在环境变量QUERY_STRING中作为URL整体的一部分传递给服务器。  
  5.   
  6. POST做很多类似GET同样的事情, 不同的地方就是它是分离地传递数据给脚本. 你的脚本通过标准输入获取这些数据. (有些Web服务器是存储在临时文件中.) 这个QUERY_STRING环境变量将不再设置.  
  7.   
  8. 那你用那个方法呢? POST是个安全的方法, 尤其如果你的表单中有很多数据的话. 当你用GET, 这个服务器就分配变量QUERY_STRING给所有的表单数据, 但是这个变量可存储量是有限的. 换句话说,如果你有很多数据但是你又用GET,你会丢失很多数据.  
  9.   
  10. 如果你用POST, 你可以尽可能多地使用数据, 因为这些数据从来也不分配到一个变量里. 

0 0
原创粉丝点击