定制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和ACCESS写聊天室(六)
Oct 09 PHP
oracle资料库函式库
Oct 09 PHP
用PHP实现维护文件代码
Jun 14 PHP
php 验证码制作(网树注释思想)
Jul 20 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
Sep 13 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
thinkphp实现发送邮件密码找回功能实例
Dec 01 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
Dec 31 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
yii框架数据库关联查询操作示例
Oct 14 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 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 和 MySQL 基础教程(二)
2006/10/09 PHP
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
php实现可运算的验证码
2015/11/10 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
运用jquery实现table单双行不同显示并能单行选中
2009/07/25 Javascript
使用JS进行目录上传(相当于批量上传)
2010/12/05 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
基于Javascript实现二级联动菜单效果
2016/03/04 Javascript
JavaScript将DOM事件处理程序封装为event.js 出现的低级错误问题
2016/08/03 Javascript
JavaScript和jQuery制作光棒效果
2017/02/24 Javascript
Vue声明式渲染详解
2017/05/17 Javascript
JavaScript实现移动端页面按手机屏幕分辨率自动缩放的最强代码
2017/08/18 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
jquery将信息遍历到界面上实例代码
2020/01/21 jQuery
原理深度解析Vue的响应式更新比React快
2020/04/04 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
[00:55]深扒TI7聊天轮盘语音出处3
2017/05/11 DOTA
python3生成随机数实例
2014/10/20 Python
Python遍历目录的4种方法实例介绍
2015/04/13 Python
Python os模块学习笔记
2015/06/21 Python
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
在Python中获取两数相除的商和余数方法
2018/11/10 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
python实现BP神经网络回归预测模型
2019/08/09 Python
Python递归求出列表(包括列表中的子列表)的最大值实例
2020/02/27 Python
90后毕业生的求职信范文
2013/09/21 职场文书
升职自荐信范文
2013/10/05 职场文书
教室布置标语
2014/06/26 职场文书
学校食品安全责任书
2015/01/29 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书
用Python将库打包发布到pypi
2021/04/13 Python
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
Python Pandas解析读写 CSV 文件
2022/04/11 Python