首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

Apache中应用C语言写的CGI

2013-09-11 
Apache中使用C语言写的CGI?今天找了不少资料,终于解决了Windows下Apache调用C语言写的CGI的问题,现整理如

Apache中使用C语言写的CGI

?

今天找了不少资料,终于解决了Windows下Apache调用C语言写的CGI的问题,现整理如下

首先在Apache的配置文件httpd.conf中找到“AddHandler cgi-script .cgi”去掉前面的#号再改为:

“AddHandler cgi-script .cgi .exe”之后重启Apache。

下面给个例子

C程序如下:

#include <stdio.h>

#include <stdlib.h>

int main(void)

{

char *data;

long m,n;

printf("%c%c",13,10);

printf("%s%c%c","<meta Content-Type:text/html;charset=UTF-8 />",13,10);

printf("<TITLE>乘法结果</TITLE> ");

printf("<H3>乘法结果</H3> ");

data = getenv("QUERY_STRING");

if(data == NULL)

printf("<P>错误!数据没有被输入或者数据传输有问题");

else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)

printf("<P>错误!输入数据非法。表单中输入的必须是数字。");

else

printf("<P>%ld和%ld的成绩是:%ld。",m,n,m*n);

fflush(stdout);

return 0;

}

?

关键是在输出的printf("%s%c%c","<meta Content-Type:text/html;charset=UTF-8 />",13,10);前面再给一空行。

否则的话会出现如下提示“The server encountered an internal error or misconfiguration and was unable to complete your request.”

接着将编译过的*.exe文件改名为mult.cgi(其实不改名为*.cgi也可以使用)并放在Apache的cgi-bin目录下。

调用mult.cgi的html源代码如下:

<FORM ACTION="/cgi-bin/mult.cgi">

<P>请在下面填入乘数和被乘数,按下确定后可以看到结果。

<INPUT NAME="m" SIZE="5">

<INPUT NAME="n" SIZE="5"><BR>

<INPUT TYPE="SUBMIT" VALUE="确定">

</FORM>

?

存为cgi.html放在网站根目录下,之后在浏览器中输入localhost/cgi.html即可得到运行结果。


我的异常网推荐解决方案:The server encountered an internal error () that prevented it from fulfilling this request.,http://www.myexception.cn/java-web/317.html

热点排行