定制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 相关文章推荐
php+mysql开源XNA 聚合程序发布 下载
Jul 13 PHP
php5.3 废弃函数小结
May 16 PHP
ezSQL PHP数据库操作类库
May 16 PHP
php 文件上传类代码
Aug 06 PHP
获取PHP警告错误信息的解决方法
Jun 03 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
php中get_cfg_var()和ini_get()的用法及区别
Mar 04 PHP
php微信支付之APP支付方法
Mar 04 PHP
详解PHP文件的自动加载(autoloading)
Feb 04 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
PHP实现递归的三种方法
Jul 04 PHP
如何通过Apache在本地配置多个虚拟主机
Jul 29 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中文字符截取防乱码
2008/03/28 PHP
Yii2框架使用计划任务的方法
2016/05/25 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
PHP+jQuery实现滚屏无刷新动态加载数据功能详解
2017/05/04 PHP
基于jquery自定义图片热区效果
2012/07/21 Javascript
js如何实现设计模式中的模板方法
2013/07/23 Javascript
JavaScript动态创建div属性和样式示例代码
2013/10/09 Javascript
JavaScript利用正则表达式去除日期中的-
2014/06/09 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
浅析Bootstrap验证控件的使用
2016/06/23 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
从零学Python之入门(四)运算
2014/05/27 Python
python threading模块操作多线程介绍
2015/04/08 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
Python字符串hashlib加密模块使用案例
2020/03/10 Python
python中entry用法讲解
2020/12/04 Python
Python非单向递归函数如何返回全部结果
2020/12/18 Python
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
法国足球商店:Footcenter
2019/07/06 全球购物
艺术设计专业个人求职信
2013/09/21 职场文书
实习生体会的自我评价范文
2013/11/28 职场文书
给老师的检讨书
2014/02/11 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
三项教育活动实施方案
2014/03/30 职场文书
社团活动总结怎么写
2014/06/30 职场文书
财务工作检讨书
2014/10/29 职场文书
2015年党员干部承诺书
2015/01/21 职场文书
开学第一天的感想
2015/08/10 职场文书
数据库之SQL技巧整理案例
2021/07/07 SQL Server