定制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 = $today2018;  
     $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;
  
  ?

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

延伸阅读
    本章说明标准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的...
相信我,这不是标题党。本文提到的大多数细节设计,都很难在平常的网站里寻到踪迹,不过恰恰如此,这篇文章的可读性非常高,如果哪一天你看到这么体贴的404网站,找到那个设计师嫁了吧。 网秦UEC:没人会想到网站访客会在错误页面上停留,但实际上这种情况确实存在。特别是在404错误页面上,访客会经常逗留。所以,你可以将404错误页面设计的...

经验教程

203

收藏

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