定制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 相关文章推荐
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
PHP里的中文变量说明
Jul 23 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
php ios推送(代码)
Jul 01 PHP
php阻止页面后退的方法分享
Feb 17 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
Jul 18 PHP
PHP中的常见魔术方法功能作用及用法实例
Jul 01 PHP
php实现的三个常用加密解密功能函数示例
Nov 06 PHP
php+mysql开发中的经验与常识小结
Mar 25 PHP
thinkphp 5框架实现登陆,登出及session登陆状态检测功能示例
Oct 10 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
有关PHP 中 config.m4 的探索
Aug 26 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
基于php中echo用逗号和用点号的区别详解
2018/01/23 PHP
大家未必知道的Js技巧收藏
2008/04/07 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
2014/06/06 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
jQuery实现文章图片弹出放大效果
2017/04/06 jQuery
详解webpack进阶之loader篇
2017/08/23 Javascript
vue2.0 datepicker使用方法
2018/02/04 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
[03:09]2014DOTA2国际邀请赛 赛场上的美丽风景线 中国Coser也爱DOTA2
2014/07/20 DOTA
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
Python装饰器使用示例及实际应用例子
2015/03/06 Python
在Python的框架中为MySQL实现restful接口的教程
2015/04/08 Python
Pyinstaller将py打包成exe的实例
2018/03/31 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
flask-restful使用总结
2018/12/04 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
Flask之pipenv虚拟环境的实现
2019/11/26 Python
python创建n行m列数组示例
2019/12/02 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
基于opencv实现简单画板功能
2020/08/02 Python
Python如何截图保存的三种方法(小结)
2020/09/01 Python
python中time tzset()函数实例用法
2021/02/18 Python
ReVive利维肤美国官网:RéVive Skincare
2018/04/18 全球购物
中秋节礼品促销方案
2014/02/02 职场文书
个人自荐书范文
2015/03/09 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
pycharm debug 断点调试心得分享
2021/04/16 Python