定制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 smarty 二级分类代码和模版循环例子
Jun 16 PHP
php实现httpclient类示例
Apr 08 PHP
PHP链接MySQL的常用扩展函数
Oct 23 PHP
Laravel 4 初级教程之安装及入门
Oct 30 PHP
php中HTTP_REFERER函数用法实例
Nov 21 PHP
[原创]ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法
Oct 10 PHP
Yii数据读取与跳转参数传递用法实例分析
Jul 12 PHP
PHP多进程编程总结(推荐)
Jul 18 PHP
PHP版微信小店接口开发实例
Nov 12 PHP
详解PHP素材图片上传、下载功能
Apr 12 PHP
laravel dingo API返回自定义错误信息的实例
Sep 29 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 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 empty函数 使用说明
2009/08/10 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
探讨如何把session存入数据库
2013/06/07 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
2016/01/05 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
jQuery点击弹出下拉菜单的小例子
2013/08/01 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
js比较日期大小的方法
2015/05/12 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
python多线程用法实例详解
2015/01/15 Python
Python学习笔记之if语句的使用示例
2017/10/23 Python
Python3实现的简单验证码识别功能示例
2018/05/02 Python
Python切片操作深入详解
2018/07/27 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
Keras load_model 导入错误的解决方式
2020/06/09 Python
Python基于httpx模块实现发送请求
2020/07/07 Python
详解python命令提示符窗口下如何运行python脚本
2020/09/11 Python
Django与AJAX实现网页动态数据显示的示例代码
2021/02/24 Python
浅谈HTML5 defer和async的区别
2016/06/07 HTML / CSS
中专毕业生自我鉴定范文
2013/11/09 职场文书
火车来了教学反思
2014/02/11 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
Flask使用SQLAlchemy实现持久化数据
2021/07/16 Python
Win11 Build 21996.1 Dev版怎么样? win11系统截图欣赏
2021/11/21 数码科技
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技
vmware虚拟机打不开vmx文件怎么办 ?vmware虚拟机vmx文件打开方法
2022/04/08 数码科技
Spring boot实现上传文件到本地服务器
2022/08/14 Java/Android