【C/C++】CGI编程

安装Apache Server

apache server下载地址:https://archive.apache.org/dist/httpd/

步骤:

1.下载并解压文件到C:\Apache24路径。

2.打开命令行,cd到C:\Apache24\bin目录下,执行httpd.exe -k install命令安装apache服务

3.打开conf/httpd.conf文件修改配置

监听8080端口

配置管理员邮箱

配置域名

4.在命令行窗口执行httpd指令启动服务器

在浏览器访问:localhost:8080,如果显示It works!表示安装成功。

如果端口被占用,则使用netstat -ano命令查看占用端口的进程的pid,并结束该进程,或者修改监听端口的配置。

如果是msi安装文件则直接安装后,打开bin/ApacheMonitor.exe即可。

相关目录介绍:

1.bin:执行文件目录

2.cgi-bin:cgi文件目录

3.conf:配置

4.error:错误

5.htdocs:网站根目录

6.icons:图标

7.logs:日志

8.manual:手册

9.modules:模块(动态库)文件目录

配置开启CGI功能

打开conf目录下的httpd.conf文件

1.解除处理CGI程序的注释

2.增加CGI设置项:Options Indexes ExecCGI

Hello CGI

开发环境说明:win7、VS2012

1.编写C/C++程序源码

#include <stdio.h>
void main(){
	printf("Context-type:text/html; \n\n");
	printf("<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">");
	printf("<html><head>");
	printf("<title>Hello CGI</title>");
	printf("</head><body>");
	printf("<p>Hello CGI</p>");
	printf("</body></html>");
}

2.编译源码,把生成的exe文件复制到cgi-bin目录下,并修改后缀名为.cgi。

3.在浏览器中访问cgi文件

http://localhost:8080/cgi-bin/hello.cgi

注意:

1.输出的内容将会作为网页源码显示,所以输出的内容要符合html标准。

2.在控制台输出的”\n”不网页上显示是不起到换行的作用的,可以通过输出”<br />”来实现换行。

3.在logs目录可以查看相关日志信息。

错误:

1.Premature end of script headers: hello.cgi

hello.cgi输出的内容过早结束脚本头。检查输出内容是否符合html标准。

实现远程控制电脑

1.在htdocs目录下添加一个cmd.html文件,用于提交命令,源码如下:

<form method="post" action="http://localhost:8080/cgi-bin/cmd.cgi">
	<input type="text" size="35" name="cmd" value="tasklist" />
	<input type="submit" name="submit" value="执行" />
</form>

2.C程序源码

思路

(1).获取从html中表单提交过来的参数并替换部分字符串,如+需要换成空格,%2F换成/。

(2).执行相关命令,并把结果输出内存中的文件对象。

(3).把执行结果显示到网页。

源码中用到的strlib.h在这里>>【C语言字符串库封装】

3.编译生成exe执行文件,复制exe文件到cgi-bin目录下,并修改后缀名为cgi。如:cmd.exe --> cmd.cgi。

4.在浏览器中访问http://localhost:8080/cmd.html,提交命令。

执行结果

时间: 2024-08-02 12:03:29

【C/C++】CGI编程的相关文章

CGI编程

一.CGI编程 http://www.w3cschool.cc/python/python-cgi.html(里面实例很详细) 简单编程过程: 1.服务器的结构创建: 首先要一个web根目录(这里是web-app文件夹),所有的CGI或者py文件要存放在cgi-bin目录下,html则不能存放在该目录下. 2.启动python的web服务器(适合简单的测试) python -m CGIHTTPServe 3.编辑脚本 [[email protected] cgi-bin]# cat test.c

几种语言的CGI编程

为了了解PHP.JSP.ASP出现之前人们写网站的方法,洒家研究了一波CGI,使用C.Python.batch.shell script语言写了几个简单的网页. CGI即通用网关接口,指web服务器调用编程语言编写的程序的一个接口.洒家用的是Apache的CGI,QUERY_STRING.REMOTE_ADDR.REQUEST_URI等参数是通过环境变量传递给CGI程序的,请求主体(POST数据)作为CGI程序的标准输入(stdin),而CGI程序的标准输出(stdout)作为HTTP响应的部分

CGI编程学习

@CGI编程学习 目录(?)[+] 一.基本原理 CGI:通用网关接口(Common Gateway Interface)是一个Web服务器主机提供信息服务的标准接口.通过CGI接口,Web服务器就能够获取客户端提交的信息,转交给服务器端的CGI程序进行处理,最后返回结果给客户端. 组成CGI通信系统的是两部分:一部分是html页面,就是在用户端浏览器上显示的页面.另一部分则是运行在服务器上的Cgi程序. 它们之间的通讯方式如下图: 服务器 客户端 CGI程序 HTTP通信 标准输入输出 (环境

python cgi 编程

python默认自带了几个和web相关的模块.原来只知道SimpleHTTPServer 这个模块,后来又知道了 CGIHTTPServer 这个模块 SimpleHTTPServer 1 python -m SimpleHTTPServer 80 在命令行里键入上面的命令就有了一个简单的HTTP服务器了,服务器的端口是 80 (也可以是别的,如果80端口被占用了) -m 的意思就是 module,web的根目录是命令行的当前目录  (win7 下 在一个文件夹空白的地方 shift+鼠标右键

Linux CGI编程基础【整理】

Linux CGI编程基础 1.为什么使用CGI? 如前面所见,任何的HTML均是静态网页,它无法实现一些复杂的功能,而CGI可以为我们实现.如:a.列出服务器上某个目录中的文件,对目录中的文件进行操作:b.通过CGI实现串口通讯:c.实现数据库接口:d.实现从摄像头读取一张图片显示在网页上… 等等 2. CGI是什么? CGI全称是 Common Gate Intergace ,在物理上,CGI是一段程序,它运行在Server上,提供同客户端 Html页面的接口. 3. CGI编程语言 你可以

Python CGI编程(转自易百)

Python CGI编程 Python的CGI编程,公共网关接口或CGI,Web服务器和一个自定义的脚本之间交换信息是一组定义的标准. 什么是CGI ? 公共网关接口或CGI,Web服务器和一个自定义的脚本之间交换信息是是一组定义的标准.. CGI规范在由NCSA和NCSA定义的CGI保持如下: 公共网关接口或CGI,如HTTP服务器信息服务器的标准接口是外部网关方案. 当前版本CGI/1.1和CGI/1.2. 网页浏览 理解CGI的概念,让我们看看会发生什么,当我们点击一个超链接到浏览特定网页

CGI编程学习----查询2000W开房数据

0x01:什么是CGI编程? CGI:Common Gateway Interface CGI代表Common Gateway Interface(通用网关界面),它使在网络服务器下运行外部分应用程序(或网关)成为可能. CGI-BIN 目录是存放CGI脚本的地方. 这些脚本使WWW服务器和浏览器能运行外部程序,而无需启动另一个原因程序. 它是运行在Web服务器上的一个程序,并由来自于浏览者的输人触发.CGI是在HTTP服务器下运行外部程序(或网关)的一个接口,它能让网络用户访问远程系统上的使用

Python CGI编程

cgi.FieldStorage() 访问作为web请求一部分发送给web服务器的数据,数据作为一个python字典. CGI是什么? 通用网关接口或CGI,是一组定义信息如何在Web服务器和自定义脚本之间交换的标准. CGI规范目前保持是由NCSA 和 NCSA 维护和定义如下. 通用网关接口或CGI,是外部网关方案,如HTTP服务器的信息服务器的接口标准. 目前的版本是CGI/1.1,而CGI/1.2目前正在定制中. 网页浏览 要了解CGI的概念,让我们看看当点击一个超链接,浏览某一个网页或

初试CGI编程--python篇

环境说明 system: Linux luogw-pc 3.5.0-48-generic #72~precise1-Ubuntu SMP Tue Mar 11 20:09:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux apache: (apt-get 安装方式) Server version: Apache/2.2.22 (Ubuntu) Server built:   Apr 17 2014 21:49:25 第一步:确认apache2服务器是否开启了C

Perl CGI编程

http://www.runoob.com/perl/perl-cgi-programming.html 什么是CGI CGI 目前由NCSA维护,NCSA定义CGI如下: CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口. 网页浏览 为了更好的了解CGI是如何工作的,我们可以从在网页上点击一个链接或URL的流程: 1.使用你的浏览器访问URL并连接到HTTP web 服务器. 2.Web服务