HTML与cgi post传递与接收,CGI实例--表单GET与POST示例

CGI概述

CGI(Common Gateway Interface: 公用网关接口)规定了Web服务器调用其他可执行程序(CGI程 序)的接口协议标准。Web服务器通过调用CGI程序实现和Web浏览器的交互, 也就是CGI程序通过读标准输入,接受Web浏览器发送给Web服务器的信息, 进行处理, 将响应结果再通过标准输出回送给Web服务器, 然后经过http协议返回给Web浏览器。

CGI程序一般完成Web网页中表单(Form)数据的处理、数据库查询和实现与传统应用系统的集成等工作。CGI程序可以用任何程序设计语言编写,如Shell脚本语言、Perl、Fortran、Pascal、C语言等。但是用C语言编写的CGI程序具有执行速度快、安全性高(因为C语言程序是编译执行且不可被修改)等特点。

CGI接口标准包括标准输入、环境变量、标准输出三部分。

38b392d868f712d2ff50e69c88382600.png

HTML表单(Form)是HTML的一个重要部分,主要用于采集和提交用户输入的信息。

举个简单的例子,一个让用户输入姓名的HTML表单(Form)。示例代码如下:

action="*.cgi" method="get">

Please input your

name:

type="text" name="yourname">

type="submit" value="login">

学习HTML表单(Form)最关键要掌握的有三个要点:

表单控件(Form Controls)

Action

Method

先说表单控件(Form Controls),通过HTML表单的各种控件,用户可以输入文字信息,或者从选项中选择,以及做提交的操作。比如上面的例句里,input type= "text"就是一个表单控件,表示一个单行输入框。

用户填入表单的信息总是需要程序来进行处理,表单里的action就指明了处理表单信息的文件。比如上面例句里的*.CGI。

至于method,表示了发送表单信息的方式。method有两个值:get和post。get的方式是将表单控件的name/value信息经过编码之后,通过URL发送(你可以在地址栏里看到)。而post则将表单的内容通过http发送,你在地址栏看不到表单的提交信息。那什么时候用get,什么时候用post呢?一般是这样来判断的,如果只是为取得和显示数据,用get;一旦涉及数据的保存和更新,那么建议用post。

GET方法:做一个加法运算,需要接收两个参数

文件get.c如下:

#include

#include

int main(void)

{

char *data;

char a[10],b[10];

printf("Content-Type:text/html\n\n");

printf("\n");

printf("

\nGet Method\n\n");

printf("

\n");

printf("

\n");

data = getenv("QUERY_STRING");

if(sscanf(data,"a=%[^&]&b=%s",a,b)!=2){

printf("

Error parameters should be entered!
\n");

}

else{

printf("

a + b = %d
\n",atoi(a)+atoi(b));

}

printf("


");

printf("");

printf("

\n");

printf("\n");

printf("\n");

return 0;

}

POST方法:做一个乘法运算,需要接收两个参数

文件post.c如下:

#include

#include

int main(void){

int len;

char *lenstr,poststr[20];

char m[10],n[10];

printf("Content-Type:text/html\n\n");

printf("\n");

printf("

\npost Method\n\n");

printf("

\n");

printf("

\n");

lenstr=getenv("CONTENT_LENGTH");

if(lenstr == NULL)

printf("

Error parameters should be entered!
\n");

else{

len=atoi(lenstr);

fgets(poststr,len+1,stdin);

if(sscanf(poststr,"m=%[^&]&n=%s",m,n)!=2){

printf("

Error: Parameters are not right!
\n");

}

else{

printf("

m * n = %d
\n",atoi(m)*atoi(n));

}

}

printf("


");

printf("");

printf("

\n");

printf("\n");

printf("\n");

fflush(stdout);

return 0;

}

再附上html测试文件cgi.html:

CGI Testing
Method: GET
please input two number:

+

=

Method: POST
please input two number:

*

=

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html鼠标滑轮换图片,JavaScript实现鼠标滚轮控制页面图片切换

鼠标上的滚轮是一个不错的东东,为什么这么说,因为它能帮助我们快速的浏览网页,快速的进行长篇文章的阅读。对于web前端的我们来说又怎么能不注重这个鼠标滚轮呢,那么它能如何让用户更好的浏览网页呢?本文主要介绍JavaScript实现鼠…

电脑视频html5全屏掉帧,Windows 10使用自带的电影和电视全屏看视频时掉帧(画面卡顿)...

Windows 10自带的“电影和电视”应用能应付一些常见的视频格式,还能播放360度全景视频,对部分人来说用它就够了,不需要额外安装其它播放视频的应用。在使用电影和电视全屏播放视频的过程中,部分人可能会出现掉帧情况,画…

微型计算机的alu部件是包含在,微型计算机的ALU部件是什么?

计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。计算机运行时,运算器的操作和操作种类由控制器决定。运…

工具系列:TensorFlow决策森林_(5)使用文本和神经网络特征

文章目录 设置使用原始文本作为特征使用预训练的文本嵌入同时训练决策树和神经网络构建模型训练和评估模型 欢迎来到 TensorFlow决策森林( TF-DF)的 中级教程。 在本文中,您将学习有关 TF-DF的一些更高级的功能,包括如何处理自…

超级计算机游戏电脑,Salad邀请PC玩家参与全球最大分布式超级计算机的构建

(来自:Salad 官网)据悉,自 2018 年成立以来,Salad 已经在 25 万名 PC 玩家的帮助下,利用闲置的硬件算力、以及开源的桌面应用程序,来帮助验证区块链交易。作为奖励,Salad 用户能够分享计算资源,…

更换锁定计算机图片,电脑锁屏图片怎么设置

电脑锁屏图片怎么设置觉得电脑锁屏的图片单调没有新意?其实大家想知道电脑锁屏图片应该怎么设置吗?下面是小编推荐给大家的电脑锁屏图片怎么设置,希望大家有所收获。同时按下窗口键winR,调出运行对话框,如下图所示运行…

六年级计算机应用计划,2017六年级信息技术下册教学计划

2017六年级信息技术下册教学计划制订教学计划必须按学生的特点制订,不能仿制照搬的计划,只有自己去试着做,摸索出自己的完整方法,才是最有用的。下面应届毕业生考试网小编为大家提供了2017六年级信息技术下册教学计划,…

计算机网络与通信思维导图,用思维导图描述5G场景

随着全球首个5G火车站在上海虹桥火车站启动建设,5G时代离我们越来越近。去年底,工业和信息化部向三大运营商发送了5G系统中低频段试验频率使用许可,5G设备将开始试商用。5G毕竟是新技术,小编今天用思维导图给大家讲解一下5G场景&a…

计算机学院五名学生开发手语app,大学生团队研发成功“聋人自然手语翻译器”APP...

把语音转换成文字,再将文字翻译成手语,在第25个“全国助残日”到来之际,江苏科技大学的一群平均年龄不到22岁的年轻创业者们,研发出了一款“聋人自然手语翻译器”,为普通人与聋哑群体搭建沟通的桥梁。拿起手机&#xf…

电大计算机网考上机操作题,电大计算机上机考试模拟题及答案 (1)

模拟试题模拟试题一:第001题:在Windows中添加”传真服务”.第002题:设置Internet Explorer,对所有官方微软网站不进行安全认证.操作步骤第003题:设置Outlook Express,新邮件.新闻邮件下载5天后即被删除, 当浪费的空间达到40%时压缩邮件,并将存储在C盘DDKS根目录下。…

在职人员计算机网络管理总结,关于学校网络管理员个人工作总结

关于学校网络管理员个人工作总结主要工作职责1.按照规定流程开通校园网用户,做好审核与登记工作。2.接听办公室报修电话,负责校园网网络故障报修用户信息登记。3.凭证参加网络故障现场维护(自网络故障报修日起两个工作日内)。4.统计当天网络故障报修数据…

西安电子科技大学研究生计算机专业王宇平教授学生就业岗位,西安电子科技大学计算机学院导师信息情况...

研究生考试招生以下是所有导师的详细资料姓名 权义宁 杨世勇 刘志镜 冯大政 王宇平 王宇平 马建峰职称 副教授 副教授 教授 教授 教授 教授 教授导师类别 硕士生导师 硕士生导师 博士生导师 博士生导师 博士生导师 硕士生导师 博士生导师电子信箱ynquanhttp://doc.xuehai.netsh…

文件夹 计算机无法使用,电脑文件夹提示被使用无法删除怎么办

相信有朋友碰到过这样的问题,电脑上新建一个临时文件夹在使用完后进行删除,或者卸载某一个程序,在卸载完想手动删除残留的文件夹时,出现了下图所示的提示:这个时候我们一般都会在任务管理器中查找是哪个进程占用了&…

计算机软件著作权特征,计算机软件著作权的法律特征是什么

计算机软件著作权的法律特征是什么一、权利内容的法定性法定性有狭义、广义之分。作为一个法律概念的“权利”,都是由国家的法律所规定的,不存在任何法律规定之外的权利,譬如没有所谓“天赋”的权利。从这个意义上讲,凡法律上的权…

mac笔记本怎么外接显示屏_win to go的安装与Macbook pro外接eGPU开启

更新:wintogo中eGPU的驱动(针对15.6 MacBook pro,且只针对于mantiz这款显卡坞) 在不插入显卡的情况下,安装 win to go将 Windows 10升级 ⾄预览版 ,并完成所有Windows 10 更新,之后禁用windows更…

中职计算机教学工作随笔,教学随笔(精选15篇)

教学随笔(精选15篇)教学是教师的教和学生的学所组成的一种人类特有的人才培养活动。下面和小编一起来看教育教学随笔(精选15篇),希望有所帮助!教学随笔 篇1今天是我的早读,到学校了,小朋友还没有静下来读书。我挥手让小朋友们静下…

计算机公式大小写,excel大写金额公式

excel大写金额公式是【IF(MOD(A2,1)0,TEXT(INT(A2),"[DBNUM2]")&"元"&"整",TEXT(INT(A2),"[DBNUM2]")&"元"&TEXT(MID(A2,LEN(INT(A2))2,1),"[DBNUM2]D角")&TEXT(MID(A2,LEN(INT(A2))3,1),&qu…

用纸筒做机器人_365天,每天都可以玩出新花样,卷纸筒就是这么牛的神器!

一旦有了娃,家里就会出现一大堆的玩具!随着孩子的长大,玩具也会越积越多,尤其是一些塑料玩具,恐龙,小动物,洋娃娃......你可以在房间的任一个角落,发现它们的踪影。而且,…

labelme 语义分割数据集_RangeNet++: 快速精确的雷达数据语义分割(IROS 2019)

本文主要介绍一篇关于雷达数据语义分割的文章。这篇文章将点云通spherical projection投到2D平面后,先通过高效的CNN网络得出segmentation结果,然后还原出点云的segmentation结果,最后用一个精巧的knn-search算法,对结果进行优化。…

plc控制可调节阀流程图_PLC五大主流编程语言你会几种?

PLC的软件编程语言与一般计算机语言相比,具有明显的特点,它既不同于高级语言,也不同于一般的汇编语言,且要满足易于编写和调试的要求。早期的PLC仅支持梯形图编程语言和指令表编程语言,现根据国际电工委员会制定了五种…