LINUX CGI简单的GET,POST的实现

来源:互联网 发布:巨人网络最新股价 编辑:程序博客网 时间:2024/05/16 14:48

GET方法:
test.html
------------------------------------------

  1. <html>
  2. <head>   
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  4. <title>你的第一个cgi测试程序 </title>
  5. </head>
  6. <body>
  7. <br>
  8. <h2>linux</h2>
  9. <br>
  10. <form ACTION="/cgi-bin/mult.cgi" >
  11. <p>请在下面填入乘数和被乘数,按下确定后可以看到结果。
  12. <input NAME="m" SIZE="5" >
  13. <input NAME="n" SIZE="5" >
  14. <br>
  15. <input TYPE="SUBMIT" VALUE="确定" >
  16. </form> </body></html> 

----------------------------------------------
mult.c
----------------------------------------------

  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/n/n",13,10);
  8.     printf("<title>乘法结果</title> /n");
  9.     printf("<h3>乘法结果</h3> /n");
  10.     data = getenv("QUERY_STRING");
  11.     if(data != NULL)
  12.     printf("---data------>%s<------------/n",data);
  13.     sscanf(data,"m=%ld&n=%ld",&m,&n);
  14.     printf("----m:--->%d<--------n:---->%d<------/n",m,n);
  15.     return 0;

---------------------------------------------------
编译mult.c为 mult.cgi   目录为LINUX WEB下的/cgi-bin/mult.cgi,然后在浏览器运行保存在WEB目录下的test.html

*************************************************************************************************************
POST方法

test2.html
_______________________________________________________________________

  1. <html>
  2. <head>  
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  4. <title>你的第一个cgi测试程序 </title>
  5. </head>
  6. <body>
  7. <h1 >你的第一个cgi测试程序 <h1>
  8. <br>
  9. <h2>linux </h2>
  10. <br>
  11. <form ACTION="/cgi-bin/collect.cgi" METHOD="POST" >
  12. <p>请输入您的留言(最多80个字符):
  13. <br>
  14. <input NAME="data" SIZE="60" MAXLENGTH="80" >
  15. <br>
  16. <input TYPE="SUBMIT" VALUE="确定" >
  17. </form>
  18. </body></html> 
____________________________________________________________________________________
collect.c
____________________________________________________________________________________
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main(void)
  4. {
  5.     char *lenstr;
  6.     char input[100], data[100];
  7.     long len;
  8.     printf("%s%c%c ","Content-Type:text/html;charset=gb2312/n/n",13,10);
  9.     printf("<title>Response</title> ");
  10.     lenstr = getenv("CONTENT_LENGTH");
  11.     printf("------lenstr------->%s<-----------/n",lenstr);
  12.     sscanf(lenstr,"%ld",&len);
  13.     fgets(input, len, stdin);
  14.     printf("------input------->%s<-----------/n",input);
  15. }

运行方法同GET,程序比较简单,很容易理解,希望对大家有所帮助。



原创粉丝点击