博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CGI编程学习3 加法计算
阅读量:6245 次
发布时间:2019-06-22

本文共 1121 字,大约阅读时间需要 3 分钟。

现象:

在表单中输入两个数据.调用CGI返回两个数据相加的和.

下面我们看一下:htm部分代码

 
<
html
>
<
head
>
<
title
>
CGI:Test add
</
title
>
</
head
>
<
body
>
<
form
action
="/cgi-bin/demo2.cgi"
>
<
p
>
<
h1
>
请输入两个数据:
<
input
type
="text"
name
="m"
size
="5"
>
+
<
input
type
="text"
name
="n"
size
="5"
>
<
br
>
<
input
type
="submit"
value
="确定"
>
</
h1
>
</
p
>
</
form
>
<
body
>
</
html
>

要点:

<input type="text" name="m" size="5">

这里是设定input类型为文本域,变量名为m, size=5表示文本域的显示宽度为5,太长就不美观了.

界面如下:

2011060211344390.png

CGI程序:

 
#include
<
stdio.h
>
#include
<
stdlib.h
>
int
main(
void
)
{
char
*
data;
int
a
=
0
, b
=
0
;
data
=
getenv(
"
QUERY_STRING
"
);
printf(
"
%s\r\n\r\n
"
,
"
Content-Type:text/html
"
);
printf(
"
<html>\n<TITLE>CGI2:相加结果</TITLE><br>\n
"
);
sscanf(data,
"
m=%d&n=%d
"
,
&
a,
&
b);
printf(
"
<H1>相加结果为:%d</H1>
"
,a
+
b);
return
0
;
}

要点:

1.data = getenv("QUERY_STRING");

通过getenv函数获得环境变量的指针.

2.sscanf(data, "m=%d&n=%d",&a,&b);

格式化字符串输入.

下面,看一下我们点击"确定"按钮后,浏览器的地址发生了什么变化.

http://192.168.220.199/cgi-bin/demoadd.cgi?m=4&n=5

这里的m=4&n=5和sscanf中形式是一样的.他就是QUERY_STRING环境变量中的值.

所以,我们在html代码中的,m,n的位置不能弄反,否则不会出现现象.

注意:

  1.CGI和HTML沟通是通过环境变量来实现的.所以只要能获得环境变量的语言都可以用来写CGI程序.

转载地址:http://jqoia.baihongyu.com/

你可能感兴趣的文章
yum update upgrade区别
查看>>
angularjs select 三级联动
查看>>
BufferedReader指定编码及乱码问题解决
查看>>
Zabbix3.0监控Centos 6配置
查看>>
解决MAC下svn run cleanup interrupted错误
查看>>
谈谈Android中的Divider
查看>>
Python基础笔记
查看>>
对Vsftpd的一些总结
查看>>
搭建高可用mongodb集群(二)—— 副本集
查看>>
001-Python运算符
查看>>
saltstack使用之二(完成部署编译nginx以及部分cp模块的使用)
查看>>
Test20160120
查看>>
Android WindowManager$BadTokenException异常
查看>>
ELK学习3 启动es常见错误或问题
查看>>
Linux快捷键和帮助
查看>>
2015年10月22日作业
查看>>
tr命令练习
查看>>
LNMP部署实例及HTTPS服务实现
查看>>
9种用户体验设计的状态是必须知道的(四)
查看>>
什么是DVB-SI?对PSI(PAT,PMT,CAT,NIT,SDT,EIT)的理解
查看>>