当前位置: 首页 > 图文教程 > 网络编程 > PHP > 用php定制404错误页面 并发信通知管理员

PHP
php zlib压缩和解压缩swf文件的代码
PHP 常用函数库和一些实用小技巧
php 时间计算问题小结
php 禁止页面缓存输出
PHP 地址栏信息的获取代码
据说是雅虎的一份PHP面试题附答案
PHP setcookie() cannot modify header information 的解决方法
Google PR查询接口checksum新算法
php zend 相对路径问题
php mssql 时间格式问题
php str_pad 函数使用详解
php strtotime 函数UNIX时间戳
php array_intersect()函数使用代码
PHP mkdir()定义和用法
php array_flip() 删除数组重复元素
php完全过滤HTML,JS,CSS等标签
php 删除数组元素
PHP $_SERVER详解
php 动态多文件上传
防止MySQL注入或HTML表单滥用的PHP程序

PHP 中的 用php定制404错误页面 并发信通知管理员


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-08-14   浏览: 228 ::
收藏到网摘: n/a

如果访问您站点的用户由于各种原因暂时出现无法访问页面的错误,如何给他一个友好的答复,并且你也知道发生了这个错误,看看下面这段程序,是用来定制404错误页面和发通知给网管。

以下为引用的内容:

<?php
# 设置 $domain 为你的域名 (注意没有www)
$domain = "oncoding.net";
#
设置URL,注意没有后划线 /
$docroot = "http://oncoding.net";
#
设置错误信息的字体
$fontface = "Verdana";
#
设置404页面的字体大小
$fontsize = "2";
#
设置404页面的背景颜色,缺省是白色
$bgcolor = "#ffffff";
#
设置文字颜色,缺省是黑色
$textcolor = "#000000";

#
使用 $reportlevel 变量来控制是否发信给网管
# 0 =
根本不用发信,嘿,NB的我们怎么会出错呢
# 1 =
只有在页面含有你的DOMAIN NAME时才发信
# 2 =
即使是与我连接出现的断连也发信,有可能是友情站点
$reportlevel = 2;  //
这种最保险了

$emailaddress = "[email protected]"; //
设置收错误信息的邮箱


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 "
oncoding编码营提醒您,您要求的页面 $docroot$REQUEST_URI, doesn't exist";
   echo " on this server.</font></p>";

   if ($reportlevel != 0)
     {
      echo "<p><font face="$fontface" size="$fontsize">";
      echo "
错误信息已经发送到oncoding编码营管理员信箱.";    
     }

   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;

?>