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

2016-02-19 14:24 4 1 收藏

下面图老师小编跟大家分享定制404错误页面并发信给管理员的程序,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - Web开发 】

如果您的用户找不到他要的页面,如何给他一个友好的答复,并且你也知道发生了这个错误呢,看看下面这段程序,是用来定制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 "htmlheadtitle404 没有找到页面/title/head";
     echo "body bgcolor="$bgcolor" text="$textcolor"";
     echo "bh1404 对不起,我没有找到您要求的页面/h1/b";
     echo "pfont face="$fontface" size="$fontsize"";
     echo "奥索网管提醒您,您要求的页面 $docroot$REQUEST_URI, doesn't exist";
     echo " on this server./font/p";
  
     if ($reportlevel != 0)
       {
        echo "pfont 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 = $today2024;  
     $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;
  
  ?

来源:http://www.tulaoshi.com/n/20160219/1606904.html

延伸阅读
标签: 电脑入门
使用和管理Windows 8,以管理员身份运行特定的程序(例如命令提示符窗口)是必不可少的操作,然而除了在传统桌面上我们可以像在以往的Windows系统一样右击应用程序并从快捷菜单中选择以管理员身份运行以外,在Metro桌面上我们还必须要掌握其他的方法。 首先,在Metro桌面上,我们可以右击应用程序的磁贴,并从下方浮现的功能菜单中单击以管理员...
    本章说明标准Linux目录树的重要部分,基于FSSTND文件系统标准。概述根据不同的目的和给定的要求将目录树分为若干分离的文件系统的一般方法。也说明一些其他方法。     背景 本章松散地基于Linux文件系统标准FSSTND版本1.2(见参考书目[Qui95]),它意图建立一个如何组织Linux系统目录树的标准。这样一...
    本节说明当Linux系统引导和关机时发生了什么,应该任何正确完成. 如果没有遵循正确的过程, 文件可能损坏或丢失.     引导和关机概述 开启计算机并导致其操作系统被加载的过程 叫引导. The name comes from an image of the computer pulling itself up from its bootstraps, but the act itself slig...
    说明当一个用户登录和注销时发生了什么。较详细地说明后台进程的各种交互、log文件、配置文件等     通过终端登录 首先,init 确认有一个getty 程序提供给终端连接(或控制台)。 getty 侦听终端等候用户告知它要登录 (这通常意味着用户必然键入些什么)。当它注意到一个用户,getty 输出一个欢迎信息(...
  本章说明Linux的内存管理特征,即虚拟内存和磁盘缓存。描述系统管理员应该考虑的东西、工作和目的。 什么是虚拟内存? Linux支持虚拟内存, 就是使用磁盘作为RAM的扩展,使可用内存相应地有效扩大。核心把当前不用的内存块存到硬盘,腾出内存给其他目的。当原来的内容又要使用时,再读回内存。这对用户全透明:运行于Linux的...

经验教程

969

收藏

15
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部