为什么要进行cgi编程?
【程序编程相关:[原创]过滤器的应用】 在html中,当客户填写了表单,并按下了发送(submit)按钮后,表单的内容被发送到了服务器端,一般的,这时就需要有一个服务器端脚本来对表单的内容进行一些处理,或者是把它们保存起来,或者是按内容进行一些查询,或者是一些别的什么.没有了cgi,web的世界就完全失去了它的交互性,所有的信息都变成单向的了,而不能够有任何的反馈. 【推荐阅读:[原创]打破Java异常处理规则】 【扩展信息:[原创]对表格行颜色进行渲染(代码示范)】 有的人认为可以用javascript来代替cgi程序,这其实是一个概念上的错误.javascript只能够在客户浏览器中运行,而cgi却是工作在服务器上的.他们所做的工作有一些交集,比如表单数据验证一类的,但是javascript是绝对无法取代cgi的.但可以这样说,如果一项工作即能够用javascript来做,又可以用cgi来做,那么绝对要使用javascript,在执行的速度上,javascript比cgi有着先天的优势.只有那些在客户端解决不了的问题,比如与某个远程数据库交互,这时就应该使用cgi了. 简单的说来,cgi是用来沟通html表单与服务器端程序的接口(interface).说它是接口,也就是说cgi并不是一种语言,而是可以被其他语言所应用的一个规范集.理论上讲,你可以用任何的程序语言来编写cgi程序,只要在编程的时候符合cgi规范所定义的一些东西就可以了.由于c语言在平台无关性上表现不错(几乎在任何的系统平台下都有其相应编译器),而且对大多数程序员而言都算得上很熟悉(不像perl),因此,c是cgi编程的首选语言之一.这儿我们介绍的,就是如何使用c来编写cgi程序. 作为cgi编程的最为简单的例子,就是进行表单的处理.因而在这篇文章中,我们主要介绍的就是如何用c来编写cgi程序来进行表但处理. get表单的处理 对于那些使用了属性“method=get”的表单(或者没有method属性,这时候get是其缺省值),cgi定义为:当表单被发送到服务器断后,表单中的数据被保存在服务器上一个叫做query_string的环境变量中.这种表单的处理相对简单,只要读取环境变量就可以了.这一点对不同的语言有不同的做法.在c语言中,你可以用库函数getenv(定义在标准库函数stdlib中)来把环境变量的值作为一个字符串来存取.你可以在取得了字符串中的数据后,运用一些小技巧进行类型的转换,这都是比较简单的了.在cgi程序中的标准输出(output)(比如在c中的stdout文件流)也是经过重定义了的.它并没有在服务器上产生任何的输出内容,而是被重定向到客户浏览器.这样,如果编写一个c的cgi程序的时候,把一个html文档输出到它的stdout上,这个html文档会被在客户端的浏览器中显示出来.这也是cgi程序的一个基本原理.... 下一页