16
2005
06

定制404错误页面,并发信给管理员的程序!

<?php 

# 设置 $domain 为你的域名 (注意没有www) 

$domain = "u6u8.net"; 

# 设置URL,注意没有后划线 / 

$docroot = "http://www.u6u8.net"; 

# 设置错误信息的字体 

$fontface = "Verdana"; 

# 设置404页面的字体大小 

$fontsize = "2"; 

# 设置404页面的背景颜色,缺省是白色 

$bgcolor = "#ffffff"; 

# 设置文字颜色,缺省是黑色 

$textcolor = "#000000"; 


# 使用 $reportlevel 变量来控制是否发信给网管 

# 0 = 根本不用发信,嘿,teaman怎么会出错呢 

# 1 = 只有在页面含有你的DOMAIN NAME时才发信 

# 2 = 即使是与我连接出现的断连也发信,有可能是友情站点 

$reportlevel = 2;  //这种最保险了 


$emailaddress = "123@u6u8.net"; //设置收错误信息的邮箱 



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; 


?> 


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。