如果访问您站点的用户由于各种原因暂时出现无法访问页面的错误,如何给他一个友好的答复,并且你也知道发生了这个错误,看看下面这段程序,是用来定制404错误页面和发通知给网管。
折叠PHP Code复制内容到剪贴板
- <?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 = "[email protected]"; //设置收错误信息的邮箱
- 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;
- ?>