定制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 相关文章推荐
简单的过滤字符串中的HTML标记
Dec 25 PHP
用php来改写404错误页让你的页面更友好
Jan 24 PHP
PHP如何利用P3P实现跨域
Aug 24 PHP
适用于抽奖程序、随机广告的PHP概率算法实例
Apr 09 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
Jul 22 PHP
重新认识php array_merge函数
Aug 31 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
Laravel搭建后台登录系统步骤详解
Jul 26 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
Oct 15 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中限制ip段访问、禁止ip提交表单的代码分享
2014/08/22 PHP
php图片裁剪函数
2018/10/31 PHP
javascript 面向对象思想 附源码
2009/07/07 Javascript
jQuery 常见学习网站与参考书
2009/11/09 Javascript
div层的移动及性能优化
2010/11/16 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
jQuery+CSS3实现3D立方体旋转效果
2015/11/10 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
JS正则表达式验证账号、手机号、电话和邮箱是否合法
2017/03/08 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
Angular4学习教程之DOM属性绑定详解
2018/01/04 Javascript
jQuery实现的监听导航滚动置顶状态功能示例
2018/07/23 jQuery
vue-router权限控制(简单方式)
2018/10/29 Javascript
使用form-create动态生成vue自定义组件和嵌套表单组件
2019/01/18 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
jQuery实现tab栏切换效果
2020/12/22 jQuery
对Python3 pyc 文件的使用详解
2019/02/16 Python
浅析python的Lambda表达式
2019/02/27 Python
python 利用已有Ner模型进行数据清洗合并代码
2019/12/24 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
python中pop()函数的语法与实例
2020/12/01 Python
python 调整图片亮度的示例
2020/12/03 Python
AC Lens:购买隐形眼镜
2017/02/26 全球购物
阿波罗盒子:Apollo Box
2017/08/14 全球购物
亚马逊印度站:Amazon.in
2017/10/15 全球购物
Notino瑞典:购买香水和美容产品
2019/07/26 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
酒店保洁主管岗位职责
2013/11/28 职场文书
管理部部长岗位职责
2013/12/05 职场文书
写给爸爸的道歉信
2014/01/15 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
技术转让协议书
2016/03/19 职场文书