php 404错误页面实现代码

如果您的用户找不到他要的页面,如何给他一个友好的答复,并且你也知道发生了这个错误呢,看看下面这段程序,是用来定制404错误页面和发通知给网管的好东西。—teaman翻译整理
?php # 设置 $domain 为你的域名 (注意没有www) $domain = “oso.com.cn”;
# 设置URL,注意没有后划线 / $docroot = “”; # 设置错误信息的字体
$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, doesnt 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 = $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; ?

复制代码 代码如下:

# 设置 $domain 为你的域名 (注意没有www)
$domain = “jb51.net”;
# 设置URL,注意没有后划线 /
$docroot = “”;
# 设置错误信息的字体
$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 “

404 没有找到页面

“;
echo “”;
echo “

404 对不起,我没有找到您要求的页面

“;
echo “

“;
echo “oncoding编码营提醒您,您要求的页面 $docroot$REQUEST_URI, doesn’t
exist”;
echo ” on this server.

“;
if ($reportlevel != 0)
{
echo “

“;
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;
?>

You can leave a response, or trackback from your own site.

Leave a Reply

网站地图xml地图