php 404错误页面实现代码


Posted in PHP onJune 22, 2009
<?php 
# 设置 $domain 为你的域名 (注意没有www) 
$domain = "3water.com"; 
# 设置URL,注意没有后划线 / 
$docroot = "http://3water.com"; 
# 设置错误信息的字体 
$fontface = "Verdana"; 
# 设置404页面的字体大小 
$fontsize = "2"; 
# 设置404页面的背景颜色,缺省是白色 
$bgcolor = "#ffffff"; 
# 设置文字颜色,缺省是黑色 
$textcolor = "#000000"; 
# 使用 $reportlevel 变量来控制是否发信给网管 
# 0 = 根本不用发信,嘿,NB的我们怎么会出错呢 
# 1 = 只有在页面含有你的DOMAIN NAME时才发信 
# 2 = 即使是与我连接出现的断连也发信,有可能是友情站点 
$reportlevel = 2; //这种最保险了 
$emailaddress = "webmaster@3water.com"; //设置收错误信息的邮箱 
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; 
?>
PHP 相关文章推荐
自己前几天写的无限分类类
Feb 14 PHP
discuz安全提问算法
Jun 06 PHP
smarty获得当前url的方法分享
Feb 14 PHP
PHP生成不重复随机数的方法汇总
Nov 19 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 PHP
php自定义扩展名获取函数示例
Dec 12 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
php的常量和变量实例详解
Jun 27 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 PHP
ThinkPHP6.0如何利用自定义验证规则规范的实现登陆
Dec 16 PHP
PHP 多进程 解决难题
Jun 22 #PHP
PHP 高级课程笔记 面向对象
Jun 21 #PHP
mysql 性能的检查和优化方法
Jun 21 #PHP
php fckeditor 调用的函数
Jun 21 #PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
Jun 21 #PHP
php 分页函数multi() discuz
Jun 21 #PHP
一个php Mysql类 可以参考学习熟悉下
Jun 21 #PHP
You might like
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
javascript XML数据显示为HTML一例
2008/12/23 Javascript
Prototype 工具函数 学习
2009/07/23 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
2011/09/19 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
ajax +NodeJS 实现图片上传实例
2017/06/06 NodeJs
vue3.0 CLI - 1 - npm 安装与初始化的入门教程
2018/09/14 Javascript
8个有意思的JavaScript面试题
2019/07/30 Javascript
vue滑动吸顶及锚点定位的示例代码
2020/05/10 Javascript
浅析微信小程序自定义日历组件及flex布局最后一行对齐问题
2020/10/29 Javascript
python判断windows系统是32位还是64位的方法
2015/05/11 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
python matplotlib画图库学习绘制常用的图
2019/03/19 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
python操作kafka实践的示例代码
2019/06/19 Python
Python实现12306火车票抢票系统
2019/07/04 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
Under Armour安德玛荷兰官网:美国高端运动科技品牌
2019/07/10 全球购物
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
单位证明范文
2015/06/18 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书
golang slice元素去重操作
2021/04/30 Golang
Java中CyclicBarrier和CountDownLatch的用法与区别
2021/08/23 Java/Android
golang 语言中错误处理机制
2021/08/30 Golang