定制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 array_flip() 删除重复数组元素专用函数
May 16 PHP
一个好用的PHP验证码类实例分享
Dec 27 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
php使用cookie显示用户上次访问网站日期的方法
Jan 26 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
Mar 02 PHP
使用PHP实现下载CSS文件中的图片
Dec 06 PHP
WordPress主题制作之模板文件的引入方法
Dec 28 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
Jun 01 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
PHP+ajax实现上传、删除、修改单张图片及后台处理逻辑操作详解
Feb 12 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可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
比较简单的一个符合web标准的JS调用flash方法
2007/11/29 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
JQuery+Ajax实现数据查询、排序和分页功能
2015/09/27 Javascript
JS实现黑色风格的网页TAB选项卡效果代码
2015/10/09 Javascript
JavaScript 函数节流详解及方法总结
2017/02/09 Javascript
微信小程序实现给循环列表添加点击样式实例
2017/04/26 Javascript
Vue2单一事件管理组件通信
2017/05/09 Javascript
微信小程序的分类页面制作
2017/06/27 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
JS中创建自定义类型的常用模式总结【工厂模式,构造函数模式,原型模式,动态原型模式等】
2019/01/19 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
vue2.x 通过后端接口代理,获取qq音乐api的数据示例
2019/10/30 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
JavaScript 双向链表操作实例分析【创建、增加、查找、删除等】
2020/04/28 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
Node.js中的异步生成器与异步迭代详解
2021/01/31 Javascript
python重试装饰器示例
2014/02/11 Python
python与sqlite3实现解密chrome cookie实例代码
2018/01/20 Python
Python实现查看系统启动项功能示例
2018/05/10 Python
Python面向对象实现方法总结
2020/08/12 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
大学生个人求职口试自我评价
2014/02/16 职场文书
人力资源部经理的岗位职责
2014/03/04 职场文书
国培远程培训感言
2014/03/08 职场文书
优秀公益广告词大全
2014/03/19 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
教师工作总结范文2014
2014/11/10 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
导游词之江苏同里古镇
2019/11/18 职场文书