定制404错误页面,并发信给管理员的程序
【字号:
大 中 小】
日期:2023-09-10 10:35:10浏览:10作者:馨心
如果您的用户找不到他要的页面,如何给他一个友好的答复,并且你也知道发生了这个错误呢,看看下面这段程序,是用来定制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 "<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; ?>