定制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作的文本留言本的例子(二)
Oct 09 PHP
php查看session内容的函数
Aug 27 PHP
PHP入门学习笔记之一
Oct 12 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
php使用curl访问https示例分享
Jan 17 PHP
PHP函数实现从一个文本字符串中提取关键字的方法
Jul 01 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
php编程实现简单的网页版计算器功能示例
Apr 26 PHP
PHP命名空间定义与用法实例分析
Aug 14 PHP
Laravel 创建指定表 migrate的例子
Oct 09 PHP
laravel框架使用阿里云短信发送消息操作示例
Feb 15 PHP
php微信小程序解包过程实例详解
Mar 31 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/07/10 PHP
将数组写入txt文件 var_export
2009/04/21 PHP
简单谈谈php延迟静态绑定
2016/01/26 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
jQuery实现可高亮显示的二级CSS菜单效果
2015/09/01 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
自定义javascript验证框架示例【附源码下载】
2019/05/31 Javascript
微信小程序 弹窗输入组件的实现解析
2019/08/12 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
python图像处理之反色实现方法
2015/05/30 Python
Python多维/嵌套字典数据无限遍历的实现
2016/11/04 Python
Pycharm编辑器技巧之自动导入模块详解
2017/07/18 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
http请求 request失败自动重新尝试代码示例
2018/01/25 Python
Python中实例化class的执行顺序示例详解
2018/10/14 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
Python中print函数简单使用总结
2019/08/05 Python
详解python内置常用高阶函数(列出了5个常用的)
2020/02/21 Python
Python使用struct处理二进制(pack和unpack用法)
2020/11/12 Python
python遍历路径破解表单的示例
2020/11/21 Python
欧舒丹加拿大官网:L’Occitane加拿大
2017/10/29 全球购物
Bonami斯洛伐克:购买家具和家居饰品
2019/07/02 全球购物
外包公司软件测试工程师
2014/11/01 面试题
国外软件测试工程师面试题
2016/12/09 面试题
测试时代收集的软件测试面试题
2013/09/25 面试题
团工委书记自荐书范文
2013/12/17 职场文书
八项规定整改方案
2014/02/21 职场文书
刊首寄语大全
2014/04/11 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
动物科学专业求职信
2014/07/27 职场文书
2015年女生节活动总结
2015/02/27 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
行政处罚事先告知书
2015/07/01 职场文书