CGI编程---简单实例

来源:互联网 发布:linux压缩文件命令zip 编辑:程序博客网 时间:2024/06/06 00:50

要实现的效果:输入两个数,点击确定后,跳转页面显示二者的和

html代码:

<html>        <head>        <TITLE>CGI1:hello CGI</TITLE>    </head>        </body>            <form action="cgi-bin/cgi_add.cgi">        <p> 请在下面填入数A 和 数B,按下确定后,可以获得二数相加的结果<br>A:<input name="num_a"  size="5"/>B:<input name="num_b"  size="5"/><br>Result:<input name="result" size="10"><br><input type="submit" value="OK">        </form>        </body>    </html>


HTML语言是一种描述性语言。html代码被包含在<html></html>之间。其中action定义了点击后的要调用的CGI脚本,上述html代码将web界面的title设置为CGI:hello CGI,然后输出提示信息,之后做出数A和数B,resulet的输入框。最后做出提交按钮。在下面代码中已经确定了提交按钮按下后会调用的是/cgi-bin/cgi_add.cgi 脚本
 <form action="cgi-bin/cgi_add.cgi">

CGI--C代码:

#include <stdio.h>  #include <stdlib.h>  int main(void)  {  char *data;  long m,n;  printf("%s ","Content-Type:text/html;charset=gb2312\r\n\r\n");  printf("<title>add result</title> ");  printf("<h3>add result</h3> ");  data = getenv("QUERY_STRING");  if(data == NULL)  printf("<P>error:no data receive");  else if(sscanf(data,"%*[^=]= %ld& %*[^=] =%ld& %*[^=]=",&m,&n)!=2)  printf("<P>error:must be number");  else  printf("<P>%ld + %ld=%ld",m,n,m+n);  return 0;  }  

在前界面A输入2  B输入3 点击确认后的界面跳转显示如下:


上述cgi的代码中,是每个CGI程序必须要用的部分,制定了编码以及要处理的数据类型
printf("%s ","Content-Type:text/html;charset=gb2312\r\n\r\n");

在此之后,从QUERY_STRING这个环境变量中将点击操作下发的数据读取到并作为字符串存储到data这个字符串中,之后使用sscanf函数从data这个字符串中读取到点击提交按钮所下发的数A和数B的值,在后面进行计算,并使用printf函数打印到web界面

原创粉丝点击