定制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 相关文章推荐
PHP3 safe_mode 失效漏洞
Oct 09 PHP
php 遍历数据表数据并列表横向排列的代码
Sep 05 PHP
Windows下部署Apache+PHP+MySQL运行环境实战
Aug 31 PHP
php设计模式之简单工厂模式详解
Sep 04 PHP
php读取flash文件高宽帧数背景颜色的方法
Jan 06 PHP
通过Email发送PHP错误的方法
Jul 20 PHP
详解PHP中的null合并运算符
Dec 30 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
thinkPHP交易详情查询功能详解
Dec 02 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
微信公众号开发之获取位置信息php代码
Jun 13 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 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
DC宇宙的第一个英雄,堪称动漫史鼻祖,如今成为美国文化的象征
2020/04/09 欧美动漫
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP图形操作之Jpgraph学习笔记
2015/12/25 PHP
PHP正则获取页面所有图片地址
2016/03/23 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
thinkPHP框架实现类似java过滤器的简单方法示例
2018/09/05 PHP
css图片自适应大小
2007/11/28 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
JavaScript面向对象设计二 构造函数模式
2011/12/20 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
JS正则获取HTML元素的方法
2017/03/31 Javascript
Vue 进阶教程之v-model详解
2017/05/06 Javascript
Vue官网todoMVC示例代码
2018/01/29 Javascript
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
[47:04]EG vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
Python基于动态规划算法解决01背包问题实例
2017/12/06 Python
linux下python使用sendmail发送邮件
2018/05/22 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
CSS3 @keyframes简单动画实现
2018/02/24 HTML / CSS
澳大利亚排名第一的儿童在线玩具商店:Toy Galaxy
2018/10/06 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
优秀班干部事迹材料
2014/01/26 职场文书
人事科岗位职责范本
2014/03/02 职场文书
实习单位评语
2014/04/26 职场文书
结对共建工作方案
2014/06/02 职场文书
送给客户微信问候语!
2019/07/04 职场文书
导游词之张家口
2019/12/13 职场文书
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript