太平洋汽车网 | 太平洋游戏网 | 太平洋女性网 | 太平洋亲子网 | PC购物网  网站地图  
太平洋电脑网
首    页
产业资讯
行情报价产品库
数据调研评测室
服 务 器网络设备
方案应用办公设备
软件资讯产品论坛PCclub社区
下载中心软件论坛摄影部落
渠道商情通信游戏科技奥运
图库二手招聘培训
diyDIY硬件 手机手  机 笔记本笔记本 台式机台式机

数码世界

数码相机数码相机 随身听MP3/MP4 摄像机摄像机 数字家电数字家电 精品廊精品廊
北京 上海 广州 深圳 香港 广西 重庆 武汉 山东 江苏 辽宁 福建 成都 西安 江西 湖南 黑龙江 台湾
 
 
   
软件 首页 | 资讯 | 应用 | 评测 | 教你学电脑 | 信息安全 | 创意设计 | 开发特区 | 软件下载 | 专题 | 社区
 
软件 特色专区: QQ大本营 | Vista专区 | msn总动员 | 组网专栏 | Photoshop | 视频专栏 | 常用软件
 
您现在的位置: 软件  >  开发特区  >  Web开发  >  CGI

CGI教程(11)错误脚本

出处:PConline[ 2004-02-14 09:33:55 ] 作者:ZSC 责任编辑:pjl

导 读  
  CGI教程(11)错误脚本
错误脚本 额外的环境变量包括CGI 1.1 变量传递给错误脚本。这些CGI 1.1 变量有: REDIRECT_REQUEST :这是当正确发送给服务器的请求。 REDIRECT_URL :这是导致错误的请求URL。 REDIRECT_STATUS :这是如果NCSA HTTPd 已经允许应答的状态数字和信息。 另外,NCSA HTTPd在err_string=error_message时作为NCSA HTTPd产生的QUERY_STRING错误字符串传递。一些错误信息可以需要一些不在CGI规范中的文件头。基于这个原因,以下给出一个没有解析的文件头的脚本,它是用Perl编写的: #!/usr/local/bin/perl # 这是一个利用Perl编写的没有解析文件头的CGI 1.1错误脚本来处理错误请求。 $error = $ENV{'QUERY_STRING'}; $redirect_request = $ENV{'REDIRECT_REQUEST'}; ($redirect_method,$request_url,$redirect_protocal) = split(' ',$redirect_request); $redirect_status = $ENV{'REDIRECT_STATUS'}; if (!defined($redirect_status)) { $redirect_status = "200 Ok"; } ($redirect_number,$redirect_message) = split(' ',$redirect_status); $error =~ s/error=//; $title = "<HEAD><TITLE>".$redirect_status."</TITLE></HEAD>"; if ($redirect_method eq "HEAD") { $head_only = 1; } else { $head_only = 0; } printf("%s %s\r\n",$ENV{'SERVER_PROTOCOL'},$redirect_status); printf("Server: %s\r\n",$ENV{'SERVER_SOFTWARE'}); printf("Content-type: text/html\r\n"); $redirect_status = "<img alt=\"\" src=/images/icon.gif>".$redirect_status; if ($redirect_number == 302) { if ($error !~ /http:/) { printf("xLocation: http://%s:%s%s\r\n", $ENV{'SERVER_NAME'}, $ENV{'SERVER_PORT'}, $error); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); printf("This document has moved"); printf("<A HREF=\"http://%s:%s%s\">here</A>.\r\n", $ENV{'SERVER_NAME'}, $ENV{'SERVER_PORT'}, $error); } } else { printf("Location: %s\r\n",$error); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); printf("This document has moved"); printf("<A HREF=\"%s\">here</A>.\r\n",$error); } } } elsif ($redirect_number == 400) { printf("\r\n"); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); printf("Your client sent a request that this server didn't"); printf(" understand.<br><b>Reason:</b> %s\r\n",$error); } } elsif ($redirect_number == 401) { printf("WWW-Authenticate: %s\r\n",$error); printf("\r\n"); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); printf("Browser not authentication-capable or "); printf("authentication failed.\r\n"); } } elsif ($redirect_number == 403) { printf("\r\n"); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); printf("Your client does not have permission to get"); printf("URL:%s from this server.\r\n",$ENV{'REDIRECT_URL'}); } } elsif ($redirect_number == 404) { printf("\r\n"); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); printf("The requested URL:<code>%s</code> ", $ENV{'REDIRECT_URL'}); printf("was not found on this server.\r\n"); } } elsif ($redirect_number == 500) { printf("\r\n"); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); printf("The server encountered an internal error or "); printf("misconfiguration and was unable to complete your "); printf("request \"<code>%s</code>\"\r\n",$redirect_request); } } elsif ($redirect_number == 501) { printf("\r\n"); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); printf("The server is unable to perform the method "); printf("<b>%s</b> at this time.",$redirect_method); } } else { printf("\r\n"); if (!$head_only) { printf("%s\r\n",$title); printf("<H1>%s</H1>\r\n",$redirect_status); } } if (!$head_only) { printf("<p>The following might be useful in determining the problem:"); printf("<pre>\r\n"); open(ENV,"env|"); while (<ENV>) { printf("$_"); } close(ENV); printf("</pre>\r\n<hr>"); printf("<A HREF=\"http://%s:%s/\"><img alt=\"[Back to Top]\" src=\"/images/back.gif\"> Back to Root of Server</A>\r\n", $ENV{'SERVER_NAME'},$ENV{'SERVER_PORT'}); printf("<hr><i><a href=\"mailto:webmaster\@%s\">webmaster\@%s</a></i> / ", $ENV{'SERVER_NAME'},$ENV{'SERVER_NAME'}); printf("<i><a href=\"mailto:httpd\@ncsa.uiuc.edu\">httpd\@ncsa.uiuc.edu</a></i>"); printf("\r\n");
前一页 [1] 下一页
下一篇:实战 FastCGI_2. 安装 FastCGI
 今日论坛热贴推荐
·几秒钟合并N个TXT文件
·技巧:怎么清除Windows 7视频锯齿现象
·揭密网游帐号是怎样被盗的全过程
·没有刻录机?Windows 7硬盘安装四大法
·Windows 7将解决微软的“纠结”
·全球首款装正版win7的thinkpad x200
·十大理由决定Windows 7成败
·微软官网首次提及Windows 7 SP1
·从Windows桌面看性格【娱乐】
·惊现google官方Chrome Os下载!?
更多资讯请点击: CGI教程  错误脚本 

  发给好友 我要报错 投稿给我们 加入收藏 返回顶部  
相关文章  

About Us | 关于我们 | 隐私政策 | 广告服务 | 联系我们 | 招聘精英 | 网站律师 | 合作联系 | 友情链接
太平洋专业网站群:  太平洋电脑网 ┊ 太平洋汽车网 ┊ 太平洋游戏网 ┊ 太平洋女性网 ┊ 太平洋亲子网

广东省通信管理局
ICP证粤B2-20040647
互联网清理整顿
技术支持与报障:support@pconline.com.cn
        020-87568837         
对本站有任何建议、意见或投诉,请点这里在线提交.
本网站简体、繁体两种版本,以简体版为准
PConline版权所有,未经授权禁止转载、摘编、复制或建立镜像.如有违反,追究法律责任