定制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 cache类代码(php数据缓存类)
Apr 15 PHP
解析php下载远程图片函数 可伪造来路
Jun 25 PHP
用php简单实现加减乘除计算器
Jan 06 PHP
CI框架开发新浪微博登录接口源码完整版
May 28 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
Nov 04 PHP
php 在线导入mysql大数据程序
Jun 11 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
Paypal实现循环扣款(订阅)功能
Mar 23 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
PHP之多条件混合筛选功能的实现方法
Oct 09 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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实现文件上传及头像预览功能
2017/01/15 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
javascript sudoku 数独智力游戏生成代码
2010/03/27 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
什么是 AngularJS?AngularJS简介
2014/12/06 Javascript
js中取得变量绝对值的方法
2015/01/03 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
理解Javascript的动态语言特性
2015/06/17 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
javascript实现控制div颜色
2015/07/07 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
node中Express 动态设置端口的方法
2017/08/04 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
2017/09/25 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
jQuery-ui插件sortable实现自由拖动排序
2018/12/01 jQuery
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
vue中解决chrome浏览器自动播放音频和MP3语音打包到线上的实现方法
2020/10/09 Javascript
Python内建模块struct实例详解
2018/02/02 Python
Python利用sqlacodegen自动生成ORM实体类示例
2019/06/04 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
Selenium Webdriver元素定位的八种常用方式(小结)
2021/01/13 Python
迪卡侬中国官网:Decathlon中国
2020/08/10 全球购物
入党申请自荐书范文
2014/02/11 职场文书
2014年大班元旦活动方案
2014/02/26 职场文书
寄语学生的话
2014/04/10 职场文书
保护环境建议书100字
2014/05/13 职场文书
查摆问题自查报告范文
2014/10/13 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js