要实现的效果:输入两个数,点击确定后,跳转页面显示二者的和
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>
<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界面