定制404错误页面,并发信给管理员的程序


Posted in PHP onOctober 09, 2006

如果您的用户找不到他要的页面,如何给他一个友好的答复,并且你也知道发生了这个错误呢,看看下面这段程序,是用来定制404错误页面和发通知给网管的好东西。---teaman翻译整理

<?php
# 设置 $domain 为你的域名 (注意没有www)
$domain = "oso.com.cn";
# 设置URL,注意没有后划线 /
$docroot = "http://www.oso.com.cn";
# 设置错误信息的字体
$fontface = "Verdana";
# 设置404页面的字体大小
$fontsize = "2";
# 设置404页面的背景颜色,缺省是白色
$bgcolor = "#ffffff";
# 设置文字颜色,缺省是黑色
$textcolor = "#000000";

# 使用 $reportlevel 变量来控制是否发信给网管
# 0 = 根本不用发信,嘿,teaman怎么会出错呢
# 1 = 只有在页面含有你的DOMAIN NAME时才发信
# 2 = 即使是与我连接出现的断连也发信,有可能是友情站点
$reportlevel = 2;  //这种最保险了

$emailaddress = "webmaster@oso.com.cn"; //设置收错误信息的邮箱

function print_details()
  {
   # Request access to the global variables we need
   global $fontface, $fontsize, $docroot, $REQUEST_URI, $reportlevel;
   global $bgcolor, $textcolor;

   # Print the 404 error in web format
   echo "<html><head><title>404 没有找到页面</title></head>";
   echo "<body bgcolor="$bgcolor" text="$textcolor">";
   echo "<b><h1>404 对不起,我没有找到您要求的页面</h1></b>";
   echo "<p><font face="$fontface" size="$fontsize">";
   echo "奥索网管提醒您,您要求的页面 $docroot$REQUEST_URI, doesn't exist";
   echo " on this server.</font></p>";

   if ($reportlevel != 0)
     {
      echo "<p><font face="$fontface" size="$fontsize">";
      echo "错误信息已经发送到奥索网管手中.";    
     }

   return;
  }

# EMAIL处理函数  

function send_email()
  {
   # Request access to the global variables we need
   global $REQUEST_URI, $HTTP_REFERER, $emailaddress, $REMOTE_ADDR, $docroot;

   # 定制发送的消息,如时间地点等.
   $today = getdate();  
   $month = $today[mon];  
   $mday = $today[mday];  
   $year = $today[year];  
   $hours = $today[hours];
   $minutes = $today[minutes];
   $errortime = "$month/$mday/$year at $hours:$minutes";  

   # Create the body of the email message
   $message .= "404 Error ReportnnA 404 error was encountered by $REMOTE_ADDR";
   $message .= " on $errortime.nn";
   $message .= "The URI which generated the error is: n$docroot$REQUEST_URInn";
   $message .= "The referring page was:n$HTTP_REFERERnn";

   # Send the mail message. This assumes mail() will work on your system!
   mail("$emailaddress", "404 Error Report", $message, "From: $emailaddress");  //好,把信发出去

   return;
  }

# 下面这些是根据变量$reportlevel的设置来发信与否。
print_details();

# See whether or not we should send an email report. If so, do it.
if ($reportlevel != 0)                   
  if ($reportlevel == 1) {               
    if (eregi($domain,$HTTP_REFERER))    
      send_email(); }
  else
     send_email();                        

# All done!
exit;

?>

PHP 相关文章推荐
mysq GBKl乱码
Nov 28 PHP
mysql 搜索之简单应用
Apr 27 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
PHP5中Cookie与 Session使用详解
Apr 30 PHP
php获取$_POST同名参数数组的实现介绍
Jun 30 PHP
php多层数组与对象的转换实例代码
Aug 05 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
PHP给文字内容中的关键字进行套红处理
Apr 12 PHP
PHP针对字符串开头和结尾的判断方法
Jul 11 PHP
PHP单态模式简单用法示例
Nov 16 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
PHP实现的多维数组排序算法分析
Feb 10 PHP
php录入页面中动态从数据库中提取数据的实现
Oct 09 #PHP
使用字符串函数输出整数化的PHP版本号
Oct 09 #PHP
树型结构列出指定目录里所有文件的PHP类
Oct 09 #PHP
搜索和替换文件或目录的一个好类--很实用
Oct 09 #PHP
非常好的php目录导航文件代码
Oct 09 #PHP
PHP4.04简明安装
Oct 09 #PHP
利用 window_onload 实现select默认选择
Oct 09 #PHP
You might like
substr()函数中文版
2006/10/09 PHP
解析php php_openssl.dll的作用
2013/07/01 PHP
PHP新特性详解之命名空间、性状与生成器
2017/07/18 PHP
document对象execCommand的command参数介绍
2006/08/01 Javascript
$()JS小技巧
2007/07/21 Javascript
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
javascript简单实现命名空间效果
2014/03/06 Javascript
jQuery实现平滑滚动的标签分栏切换效果
2015/08/28 Javascript
JavaScript对HTML DOM使用EventListener进行操作
2015/10/21 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
jQuery中Chosen三级联动功能实例代码
2017/03/07 Javascript
详解单页面路由工程使用微信分享及二次分享解决方案
2019/02/22 Javascript
使用vue-router切换页面时实现设置过渡动画
2019/10/31 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
2021/01/13 Vue.js
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
Python中下划线的使用方法
2015/03/27 Python
用Python实现随机森林算法的示例
2017/08/24 Python
Matplotlib中文乱码的3种解决方案
2018/11/15 Python
python路径的写法及目录的获取方式
2019/12/26 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
python实现定时发送邮件
2020/12/23 Python
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
生物专业个人自荐信范文
2013/11/29 职场文书
小学语文国培感言
2014/03/04 职场文书
就业推荐表自我鉴定
2014/03/21 职场文书
2014年小学生迎国庆65周年演讲稿
2014/09/27 职场文书
计划生育证明格式及范本
2014/10/09 职场文书
催款通知书范文
2015/04/17 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
python 爬取豆瓣网页的示例
2021/04/13 Python
MySQL8.0无法启动3534的解决方法
2021/06/03 MySQL