嵌入式技术论坛
直播中

短短

7年用户 6512经验值
擅长:RF/无线
私信 关注
[经验]

CGI编程错误总结


前一段时间接触了CGI,虽然要实现的功能不是很复杂,但这个过程中遇到了一些问题,当时也头疼了一阵子,后来慢慢摸索最终还是解决了,现把个人遇到的几个CGI常见错误总结分享出来:

1、Internal Server Error?错误代码500

可能原因如下:

(1)、缺少标准输出头信息:

printf("%s%c%c","Content-Type:text/html",10,10);  

这个输出是作为 HTML 的文件头。因为 CGI不仅可以像浏览器输出 HTML 文本,而且可以输出图像,声音之类的东西。 这一行告诉浏览器如何处理接受到的内容,此处为一个html网页文本文件。在Content-Type 的定义后面跟有两行的空行,这也是不可缺少的。因为所有 CGI 程序的头部输出都是相近的,可以为其定义一个函数调用来节省编程的时间。这是CGI编程常用的一个技巧。


(2)、程序本身有语法错误。

程序中的一些语法错误同样会导致CGI程序执行出错,这时可以使用服务器自已的错误日志来判断错误原因,apache2的错误日志目录为:/var/log/apache2/error.log

(3)、是否设为755777的权限,有些主机设置只能用755,那么使用777也会错。


2、在IE端运行CGI可执行程序时弹出下载提示框:

    这个原因很可能是你把cgi可执行程序位置放错了,比如你配置服务器时指定的CGI可执行程序为/var/www/cgi-bin目录,而却把cgi可执行程序放在了/var/www目录下,在IE端调用时使用:http://hostip/xxx.cgi,这样一般浏览器上都会弹出下载提示框提示你保存譔cgi文件。


3、Can no execute binaryfile

(1)、检查执行权限,一般要赋予CGI可执行程序777权限。

(2)、如果是交叉编译,要注意所使用的编译器,用错编译器,程序当然无法正确执行。


4、Not Found. Therequested URLwas not found on this server

html页面代码中的action=URLCGI可执行程序的URL指定错误。可能是CGI的路径输入错误,也可能是cgi-bin目录下根本没有你所指定的cgi响应程序。


5、Access Error Data followsCGI process file does notexist

CGI程序文件不存在。

原因1:可能是cgi-bin目录下没有CGI可执行文件。

原因2:可能是CGI可执行文件名错误。

原因3:可能是网络存在问题导致网络不通而找不到指定的CGI可执行程序。


6、Access Error: DatafollowsCGI generated no output

这个错误一般原因是:你的CGI可执行程序要从某处获取某个或某些结果并把譔结果反馈给WEB服务器时,这些结果获取出现了异常或错误,导致CGI程序提前结束,服务器端没有得到想要的结果。可以检查CGI逻辑和可执行程序的操作对象来排除故障

回帖(1)

陈思

2018-8-16 15:17:55
谢谢,收到知识
举报

更多回帖

发帖
×
20
完善资料,
赚取积分