定制404错误页面,并发信给管理员的程序

5年以前  |  阅读数:1077 次  |  编程语言:PHP 

如果您的用户找不到他要的页面,如何给他一个友好的答复,并且你也知道发生了这个错误呢,看看下面这段程序,是用来定制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 "404 没有找到页面";
echo "";
echo "

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

";
echo "

";
echo "奥索网管提醒您,您要求的页面 $docroot$REQUEST_URI, doesn't exist";
echo " on this server.

";

if ($reportlevel != 0)
{
echo "

";
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;

?>

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例