怎樣用php定制404錯誤頁面 并發信通知管理員_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:淺談PHP企業級應用之WebService
      PHP企業級應用之WebService篇 Ping Service,博客程序提供一種通知機制,以便在第一時間將博客的更新信息發布到提供Ping Service服務的網站,寫聚合的時候研究了一下。 先看 標準 吧 這是一個標準的Ping Service,用XMLRPC來傳數據的,注釋寫的這么詳細,代碼

      如果訪問您站點的用戶由于各種原因暫時出現無法訪問頁面的錯誤,如何給他一個友好的答復,并且你也知道發生了這個錯誤,看看下面這段程序,是用來定制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 = "webmaster@oncoding.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 "
      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;

      ?>

      分享:談PHP CLI模式下的多進程應用
      PHP在很多時候不適合做常駐的SHELl進程, 他沒有專門的gc例程, 也沒有有效的內存管理途徑. 所以如果用PHP做常駐SHELL, 你會經常被內存耗盡導致abort而unhappy. 而且, 如果輸入數據非法, 而腳本沒有檢測, 導致abort, 也會讓你很不開心. 那? 怎么辦呢? 呵呵, 別

      來源:模板無憂//所屬分類:PHP教程/更新時間:2009-07-10
      相關PHP教程