文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHP:404错误陷阱并email给管理员的程序

PHP:404错误陷阱并email给管理员的程序

时间:2007-02-17  来源:PHP爱好者

<?
# 404.PHP, 8/10/2000.
# Traps 404 errors and mails a notice to the webmaster.
# Requires PHP 3.0 or newer, and mail capability on your system.
#
# Copyright 2000 [email protected] under the GNU Public License.
# Disclaimer: I wrote this script for me, and it works for me.
# If it doesn't work for you, or makes your server explode,
# that's life. Please email with questions or bug reports. # Set these variables to configure the script: # Set $domain to your domain name (no www) $domain = "your.domain.com"; # Set $docroot to the URL of the directory which contains your
# .htaccess file. Don't include trailing slash. $docroot = "http://your.domain.com"; # Font face you'd like to use on the 404 page $fontface = "Verdana"; # Font size you'd like to use on the 404 page $fontsize = "2"; # Background color of the 404 page (default is white) $bgcolor = "#ffffff"; # Text color you'd like to use on the 404 page (default is black) $textcolor = "#000000"; # This script is capable of mailing the details of each 404 error 
# to the webmaster. Use the $reportlevel variable to control when
# you receive these reports.
#
# 0 = don't use the email capabilities at all
# 1 = send email only if the error's referer contains your domain name
# (i.e. the 404 was generated by a broken link on your site)
# 2 = send email any time a 404 error is generated (useful for tracking
# broken links at other sites which link to you) $reportlevel = 2; # Set $emailaddress to the email address of whoever should be
# notified of 404 errors. Don't escape the @ symbol. This will also
# be used as the "from" address on any emails the script generates.
# You can leave this unassigned if you're not using email features. $emailaddress = "[email protected]"; ################################################################
# DON'T EDIT BELOW THIS LINE UNLESS YOU KNOW WHAT YOU'RE DOING #
################################################################
# If you want to edit the script, I've commented profusely :) #
################################################################ # The print_details function is what prints the 404 error to
# the visitor. As far as I know, PHP3 doesn't incorporate Perl's
# print <<"EOT" ability. PHP4 does allow this capability
# but the script was written for PHP3. So, you have to use
# a lot of echo statements if you want to retain PHP3 compat. 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 Not Found</title></head>";
echo "<body bgcolor="$bgcolor" text="$textcolor">";
echo "<b><h1>404 Not Found</h1></b>";
echo "<p><font face="$fontface" size="$fontsize">";
echo "We're sorry. The page you requested, $docroot$REQUEST_URI, doesn't exist";
echo " on this server.</font></p>"; # If an email report is being generated, let the visitor know:
if ($reportlevel != 0)
{
echo "<p><font face="$fontface" size="$fontsize">";
echo "The details of this error have automatically been mailed to the webmaster.";
} # Close up the HTML tags
# echo "</body></HTML>"; return;
}
# The send_email function sends the details of the 404 error to the
# webmaster. function send_email()
{
# Request access to the global variables we need
global $REQUEST_URI, $HTTP_REFERER, $emailaddress, $REMOTE_ADDR, $docroot; # Build the $errortime variable to contain the date/time of the error.
# Using date() likely would have been better, but I already had this code
# elsewhere, and I'm lazy.
$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;
}
# Done with function declarations. Main function begins here. # Send a 404 error to the user's browser
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爱好者站 http://www.phpfans.net 文章|教程|下载|源码|论坛.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载