CGI编程---简单实例_Gaoy9303的博客

CSDN博客 · · 406 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

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界面

本文来自:CSDN博客

感谢作者:CSDN博客

查看原文:CGI编程---简单实例_Gaoy9303的博客

406 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传