欢迎来到天天文库
浏览记录
ID:9720521
大小:60.00 KB
页数:6页
时间:2018-05-06
《联网调试cgi程序心得与感受--》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、联网调试CGI程序心得与感受>>CGI程序最常见的错误就是500InternalServerError,对于这个错误提示,可以按以下步骤查找原因。一、检查CGI程序的属性,一定要设为755才可以。二、检查一下是不是用了BINARY方式上传,CGI程序一定要用ASCII方式上传。建议在所用的FTP软件里把.cgi,.pl都设定为使用ASCII方式,并且把连接选项里的上传方式设为AUTO。三、如果上面两项都没有问题,那就是程序本身有语法问题,常见的语法问题有以下一些: 1。没有指定perl解释器的位置 程序的第一行必须是服务
2、器上PERL解释器的位置,一般是#!/usr/bin/perl 2。在输出前没有先输出一个http头 CGI程序必须告诉浏览器,这以后的输出将作为一个HTML文档来对待建议将这个语句作为一个函数,在输出前调用之,下面是一个例子。 subHead{ print"Content-type:text/htmlnn"; } 3。某语句少写了分号 4。括号、引号等不配套 常见的是少写一边,或者单双引号混用了(毕竟都是一个键啊)还有就是多写了引号,我在把DL代码COPY到程序里时就经常犯这个错误比如pr
3、int"<imgsrc=xxx.gifail="xxxxxx.";就是一个非法的赋值应该写成$cgiurl="xxxsina.";或者使用单引号。四、遇到上面3、4、5这样的情况,最主要的工作就是定位有问题的语句我所用的方法是这样的。 ################ #错误处理# ################ suberror{ Header('错误',"错误:$_[0]"); print"$_[1]"; Tailer; exit0; } ################## #HTML页面头部#
4、################## subHeader{ my($title,$header)=_; print"Content-type:text/htmlnn"; print"<html><head><title>$title</title></head>n"; print"<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">n"; print"<center><h2>$header</h2></center><dir>n"; }
5、################# #HTML页面尾部# ################# subTailer{ print"</body></html>"; } 将上面这个错误处理函数放在程序的最尾部,而在程序的最前面就调用它 error('调试','程序头'); 平时将这一句($name,$value); }}#################为$FORM赋值#################subSetValueToForm{ $name=$_[0]; $value=$_[1]; $nam
6、e=Decode($name); $value=Decode($value); if($FORM{$_[0]}){ $FORM{$_[0]}="$FORM{$_[0]}§$_[1]";} else{$FORM{$_[0]}=$_[1];}}###############译码###############subDecode{ my($code)=$_[0]; $code=~tr/+//; $code=~s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; retur
7、n$code;}你可以把这里的几个自定义的函数都放在程序的结尾,在程序的开头都写上 GetForm; #Vie; #error('调试','程序头');你会发现它们对你调试程序有很大的帮助。上一页12>>>>这篇文章来自..,。
此文档下载收益归作者所有