用c语言写cgi程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用c语言写cgi程序(1)

代码用这个:

/question/28759329.html

再贴一下:

view plaincopy to clipboardprint?

1. #include

2. #include

3. i nt main(void)

4. {

5. c har *data;

6. l ong m,n;

7. p rintf("%s%c%c ","Content-Type:text/html;charset=gb2312",13,10);

8. p rintf("乘法结果< /TITLE > ");</p><p>9. p rintf("<H3>乘法结果< /H3 > ");</p><p>10. data = getenv("QUERY_STRING");</p><p>11. if(data == NULL)</p><p>12. printf("<P>错误!数据没有被输入或者数据传输有问题");</p><p>13. else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)</p><p>14. printf("<P>错误!输入数据非法。表单中输入的必须是数字。");</p><p>15. else</p><p>16. printf("<P>%ld和%ld的成绩是:%ld。",m,n,m*n);</p><p>17. return 0;</p><p>18. }</p><p>19. 编译运行出.exe的文件。是否要把后缀名改为.cgi?</p><p>20. 此程序的表单如下:</p><p>21. <FORM ACTION="/cgi-bin/mult.cgi"></p><p>22. <P>请在下面填入乘数和被乘数,按下确定后可以看到结果。</p><p>23. <INPUT NAME="m"SIZE="5"></p><p>24. <INPUT NAME="n"SIZE="5"><BR></p><p>25. <INPUT TYPE="SUBMIT"VALUE="确定"></p><p>26. < /FORM ></p><p>1. G ET 和 POST</p><p>2. 表单从浏览器发给服务器有两种方法. GET 和 POST.</p><p>3.</p><p>4. 我们上面谈论的方法,实际是GET,它将数据打包放置在环境变量</p><p>QUERY_STRING中作为URL整体的一部分传递给服务器。</p><p>5.</p><p>6. P OST做很多类似GET同样的事情, 不同的地方就是它是分离地传递数据给脚</p><p>本. 你的脚本通过标准输入获取这些数据. (有些Web服务器是存储在临时文件中.) 这个QUERY_STRING环境变量将不再设置.</p><p>7.</p><p>8. 那你用那个方法呢? POST是个安全的方法, 尤其如果你的表单中有很多数据的</p><p>话. 当你用GET, 这个服务器就分配变量QUERY_STRING给所有的表单数据, 但是这个变量可存储量是有限的. 换句话说,如果你有很多数据但是你又用GET,你会丢失很多数据.</p><p>9.</p><p>10. 如果你用POST, 你可以尽可能多地使用数据, 因为这些数据从来也不分配到一</p><p>个变量里.</p><p>用c语言写cgi程序(2)第一个CGI程序:Hello World Hello World!</p><p>任何程序语言的学习都是从打印Hello World!开始的,这样不但可以熟悉程序的流程和大体结构,而且最大限度的避免了一些细小的错误,给初学者信心。</p><p>hello.c</p><p>#include <stdio.h></p><p>int main(){</p><p>printf("Content-Type:text/plain;charset=us-ascii\n\n");</p><p>printf("Hello World\n\n");</p><p>return 0;</p><p>}</p><p>#gcc –o hello.cgi hello.c</p><p>#cp hello.cgi /var/www/cgi-bin/</p><p>用GCC将源文件编译成CGI程序,并拷贝到服务器所制定的cgi程序运行目录中。在浏览器中输入:192.168.44.128/cgi-bin/hello.cgi可以看到页面打印出“H ello World”。</p><p>让我们再来一个更简单的CGI脚本:(Linux下)</p><p>#vim /var/www/cgi-bin/hellow.cgi</p><p>echo Conten-Type: text/plain</p><p>echo</p><p>echo</p><p>/bin/date</p><p>在浏览器中输入:192.168.44.128/cgi-bin/hellow.cgi,我们看到在浏览器页面中输出了当前时间。呵呵,这时应该对CGI是什么有比较深的印象里吧?CGI就是在服务器端执行的一段程序,这段程序执行完毕得到结果后会反馈显示给客户。编写CGI程序的可以是任何形式的语言。</p><p>在所有CGI程序中,第一句必须输出HTML头来告诉浏览器这是一个什么样的内容,这个头是服务器与浏览器之间的信息协议并不属于文本的一部分其实Contet-Type指定的就是MIME信息。有三个类型的头部:Contet-Type,Location,Status。Contet-Type最为常用</p><p>Content-Type行后必须接两个空行,不然浏览器不能正确的认出内容类型来。</p><p>评论: 是的确实是要加的,CGI也是linux下的一个程序,只不过是后缀名改变了的一个shell程序而已,shell要执行的话,前面是必须执行shell的外壳的,所以必须加#!/bin/sh,当初复制上来的时</p><p>候没有复制顶部的那个执行命令,不好意思疏忽了</p> </div> </div> </div> </div> </div> <div id="rightcol" class="viewcol"> <div class="coltitle">相关文档</div> <ul class="lista"> <li><a href="/doc/1f2332905.html" target="_blank">CGI编程完全手册(个人学习笔记)</a></li> <li><a href="/doc/1a10565189.html" target="_blank">c语言开发cgi基础</a></li> <li><a href="/doc/1417801531.html" target="_blank">用c语言写cgi程序</a></li> <li><a href="/doc/1e18879187.html" target="_blank">嵌入式web开发 2-c语言cgi程序设计</a></li> <li><a href="/doc/2f7689576.html" target="_blank">用C语言开发DSP系统的全过程</a></li> <li><a href="/doc/2014066592.html" target="_blank">利用C语言写一个可以进行乘方运算的程序</a></li> <li><a href="/doc/2c18735511.html" target="_blank">实验2用C语言编写简单程序</a></li> <li><a href="/doc/307221174.html" target="_blank">用c语言写cgi程序(3)---实现文件上传</a></li> <li><a href="/doc/388592023.html" target="_blank">CGI程序数据的输出方法-KC08161306-d01.</a></li> <li><a href="/doc/5316991483.html" target="_blank">CGI之C语言篇</a></li> </ul> <div class="coltitle">最新文档</div> <ul class="lista"> <li><a href="/doc/071000073.html" target="_blank">饭店包间名字大全</a></li> <li><a href="/doc/0d10001030.html" target="_blank">word无法创建工作文件,请检查临时环境变量</a></li> <li><a href="/doc/0d10001458.html" target="_blank">自行车健身比赛开幕式讲话词</a></li> <li><a href="/doc/0510001469.html" target="_blank">2018乡村医生个人工作总结</a></li> <li><a href="/doc/0e10002558.html" target="_blank">MySQL测试题 SQL</a></li> <li><a href="/doc/0310002568.html" target="_blank">合勤NXC5200</a></li> <li><a href="/doc/0210004833.html" target="_blank">铁路集中箱空箱调度优化建模案例(案例2)</a></li> <li><a href="/doc/021000530.html" target="_blank">微分几何教学大纲-复旦大学数学科学学院</a></li> <li><a href="/doc/031000596.html" target="_blank">人教版九年级数学上册导学案:24.1.1_圆【精品】</a></li> <li><a href="/doc/0c10006773.html" target="_blank">(整容后办护照用)医院整容证明</a></li> <li><a href="/doc/0e10006860.html" target="_blank">危险废物管理台账</a></li> <li><a href="/doc/0310008420.html" target="_blank">2017年终大会会场物料设计方案</a></li> </ul> </div> </div> <script> var did = "117801531"; var ext = 'doc'; var docId = '0x8i8s6nsy9rm7cjzle'; var totalPage = 13; const pageNum = '13'; </script> <div class="clearfloat"></div> <div id="footer"> <div class="ft_info"> <a href="https://beian.miit.gov.cn">闽ICP备16038512号-3</a> <a href="/tousu.html" target="_blank">侵权投诉</a>  ©2013-2023 360文档中心,www.360docs.net | <a target="_blank" href="/sitemap.html">站点地图</a><br> 本站资源均为网友上传分享,本站仅负责收集和整理,有任何问题请在对应网页下方投诉通道反馈 </div> <script>foot()</script> </div> </body> </html>