php 404错误页面实现代码

2015-01-24信息快讯网
<?php 
# 设置 $domain 为你的域名 (注意没有www) 
$domain = "jb51.net"; 
# 设置URL,注意没有后划线 / 
$docroot = "http://jb51.net"; 
# 设置错误信息的字体 
$fontface = "Verdana"; 
# 设置404页面的字体大小 
$fontsize = "2"; 
# 设置404页面的背景颜色,缺省是白色 
$bgcolor = "#ffffff"; 
# 设置文字颜色,缺省是黑色 
$textcolor = "#000000"; 
# 使用 $reportlevel 变量来控制是否发信给网管 
# 0 = 根本不用发信,嘿,NB的我们怎么会出错呢 
# 1 = 只有在页面含有你的DOMAIN NAME时才发信 
# 2 = 即使是与我连接出现的断连也发信,有可能是友情站点 
$reportlevel = 2; //这种最保险了 
$emailaddress = "webmaster@jb51.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; 
?> 

©2014-2024 dbsqp.com