Zencart 500错误查找和解决方法
有时在一些虚拟主机下(如HostMonster,BlueHost),Zencart网站会莫名奇妙输出空白页面,查看HTTP头,其实可以看到是500错误。
至于500错误的出现原因,一般是由于服务器脚本或是.htaccess有错误。
因为是空白页面没有输出具体的错误位置,所以排查起来很困难。
以下方法是让网站显示了具体的错误位置,错误内容等代码。
application_top.php放入
error_reporting(9);
function onError($errNo, $errMsg, $file, $line, $errcontext) {
$report_title ='错误报告';
$report_msg = "
<strong>错误类型:</strong><blockquote>$errType($errNo)</blockquote>
<strong>错误位置:</strong><blockquote>$file 第 $line 行</blockquote>
<strong>错误信息:</strong><blockquote>$errMsg</blockquote>";
//print_r($errcontext);
echo $report_msg;
echo '<hr>';
}
set_error_handler('onError');
将以上代码添加在
application_top.php 文件的适当位置。
再次打开网站会发xian具体的输出文件位置已经取出。
-------------------------------------------------------------------------------------------
调试PHP错误经常用到的一些
时间:12-05-24 栏目:问题及解决 作者:admin 评论:3 点击: 3,195 次
1
2
3
4
|
ini_set ( 'error_log' , 'errorLog.txt' );#记录下来所有发现的错误到文件里去。 ini_set ( 'display_errors' , 1);#嗯,要显示错误 ini_set ( 'memory_limit' , '512M' );#有些错误的出现和内存使用有关系,把这个值调大试试看 |
ini_set("error_reporting",E_ALL);
ini_set("error_log","<日志文件名>")
ini_set("log_errors",1);
#所有 ini_set的内容都可以在php.ini中定义
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
function _e( $msg , $type = '' ){ static $i =0; $i ++; $error [ 'msg' ] = $msg ; $error [ 'type' ] = $type ; $GLOBALS [ERROR_STACK_NAME][ $i ] = $error ; return ERROR_STACK_NAME. $i ; } /** * 错误处理 */ function onError( $errNo , $errMsg , $file , $line , $errcontext ) { $errorlevels = array ( 2048 => 'Warning' , 2048 => 'Notice' , 1024 => 'Warning' , 1024 => 'Notice' , 512 => 'Warning' , 256 => 'Error' , 128 => 'Warning' , 64 => 'Error' , 32 => 'Warning' , 16 => 'Error' , 8 => 'Notice' , 4 => 'Error' , 2 => 'Warning' , 1 => 'Error' ); //print_r(array('code'=>$errno, 'string'=>$errstr, 'file'=>$errfile, 'line'=>$errline,'codeinfo'=>$errorlevels[$errno])); $t = error_reporting (); if (!( $errNo & error_reporting ())) { return ; } $errType = $errNo ; /** Get Advance Error msg **/ if ( strpos ( $errMsg ,ERROR_STACK_NAME)==0){ $i = substr ( $errMsg , strlen (ERROR_STACK_NAME)); if (isset( $GLOBALS [ERROR_STACK_NAME][ $i ])){ $error = $GLOBALS [ERROR_STACK_NAME][ $i ]; $errMsg = $error [ 'msg' ]; $errType = $error [ 'type' ]; } } $errMsg = nl2br ( $errMsg ); if ( $errType == 'smarty' ){ $errType = '模版系统错误' ; } elseif ( $errType == 'sql' ){ $errType = '数据库操作错误' ; } else { $errType = "PHP错误[$errType]" ; } $title = '系统错误' ; $msg = " <strong>错误类型:</strong><blockquote> $errType </blockquote> <strong>错误位置:</strong><blockquote> $file 第 $line 行</blockquote> <strong>错误信息:</strong><blockquote> $errMsg </blockquote> "; echo $msg ; flush (); //msgBox($title,$msg,'',false,2); exit (); } function shutdown_function(){ $errorlevels = array ( 2048 => 'Warning' , 2048 => 'Notice' , 1024 => 'Warning' , 1024 => 'Notice' , 512 => 'Warning' , 256 => 'Error' , 128 => 'Warning' , 64 => 'Error' , 32 => 'Warning' , 16 => 'Error' , 8 => 'Notice' , 4 => 'Error' , 2 => 'Warning' , 1 => 'Error' ); $error = error_get_last(); if ( $error ){ echo '</tr></table></div></div></div></iframe><div style="clear:both"></div><div style=" background-color:#FFBB00"><pre>' ; echo '最后一个错误:' ; $error [ 'type' ]= $errorlevels [ $error [ 'type' ]]; print_r( $error ); debug_print_backtrace(); echo '</pre></div>' ; } else { echo '本页面无错误!' ; } } register_shutdown_function( 'shutdown_function' );#定义最后一个错误捕获 define( 'ERROR_STACK_NAME' , 'ERROR_STACK' ); set_error_handler( 'onError' );#定义错误处理函数 error_reporting (9); |
LH的方法是:
2.从链接入手,通过访问不同模块确定错误可能存在与某个模块
3.从代码入手,链接反复出错,需要查看框架其实处开始
4.从服务器配置入手,切换服务器配置
声明: 本文由(admin)原创编译,转载请保留链接: 调试PHP错误经常用到的一些
Zencart 500错误查找和解决方法的更多相关文章
- 【thinkphp 5 在nginx 环境下路由无法生效(404 500错误 )的解决方法】
非常惭愧的说,由于之前一直使用的是windowservice,安装apache来进行服务器布置的,这种方式也是最简单最直接的方式, 但是由于php的服务大多都是linux栈的,咱们也不能落后呀,在 ...
- 批处理命令篇--配置免安装mysql 5.6.22, 以及1067错误的一个解决方法
mysql 服务启动出现1067错误的一个解决方法: 当服务启动出现1067错误时,可查看“windows 事件查看器”,发现类似错误提示 Can't find messagefile 'F:\ ...
- IIS发布网站浏览之后看到的是文件目录 & Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法 & App_global.asax.pduxejp_.dll”--“拒绝访问。 ”
Q:IIS发布网站浏览之后看到的是文件目录 A:它出现了一个说到.NET4.0 更高框架什么的错误,所以我将 .NTE CRL版本由4.0改为2.0了,改为2.0后就出现了只能浏览文件目录了.改为4. ...
- ORA-04091错误原因与解决方法
最近工作中写了一触发器报错:ORA-04091:table XX is mutating, trigger/function may not see it. 下面通过官方文档及网友提供资料分析一下错 ...
- [代码]--IIS发布网站浏览之后看到的是文件目录 & Internal Server Error 处理程序“ExtensionlessUrlHandler-ISAPI-4.0_64bit”在其模块列表中有一个错误模块“IsapiModule” 解决方法 & App_global.asax.pduxejp_.dll”--“拒绝访问。 ”
Q:IIS发布网站浏览之后看到的是文件目录 A:它出现了一个说到.NET4.0 更高框架什么的错误,所以我将 .NTE CRL版本由4.0改为2.0了,改为2.0后就出现了只能浏览文件目录了.改为4. ...
- Hadoop常见错误问题及解决方法总结二
问题导读:1.遇到问题该如何排除错误?2.看不到namenode的可能原因是什么?3.地址占用该如何解决?4.could only be replicatied to 0 nodes, instead ...
- coreseek常见错误原因及解决方法
coreseek常见错误原因及解决方法 Coreseek 中文全文检索引擎 Coreseek 是一款中文全文检索/搜索软件,以GPLv2许可协议开源发布,基于Sphinx研发并独立发布,专攻中文搜索和 ...
- android 真机调试出现错误 INSTALL_FAILED_INSUFFICIENT_STORAGE 的解决方法。
关于这个神奇的 内存不够错误的通常解决方法,网上大把,建议大家在尝试过了网上的方法后再来尝试下我的这种方法. 编译工具: android studio 测试真机:米 2 调试的时候出现:INSTALL ...
- 无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问。)” (Microsoft SQL Server,错误: 5120)的解决方法
无法打开物理文件xxx.mdf操作系统错误 5:“5(拒绝访问.)” (Microsoft SQL Server,错误: 5120)的解决方法 问题描述: 在附加数据库到sql server时,附 ...
随机推荐
- Word试卷文档模型化解析存储到数据库
最近在搞一套在线的考试系统,有许多人反映试题的新增比较麻烦(需要逐个输入),于是呼就整个了试卷批量导入了 poi实现word转html 模型化解析html html转Map数组 Map数组(数组的操作 ...
- hdu_1969_pie(二分)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1969 题意:看了老半天,就是有N个饼,要分给f+1个人,每个人只能一样多,不能拼凑,多余的丢弃,问每个 ...
- 转载--C# PLINQ 内存列表查询优化历程
http://www.cnblogs.com/dengxi/p/5305066.html 产品中(基于ASP.NET MVC开发)需要经常对药品名称及名称拼音码进行下拉匹配及结果查询.为了加快查询的速 ...
- JSP内置对象--response对象 (addCookie(),setHeader(),sendRedirect())
服务器接收客户端请求:request 服务器对客户端的回应:response javax.servlet.http的接口HttpServletResponse extends ServletRespo ...
- 获取输入设备的vid和pid
一.获取/dev/input/event16设备的vid和pid testhid.c #include <linux/types.h> #include <linux/input.h ...
- jQuery实现DIV拖动
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- redis配置密码认证
redis配置密码 1.通过配置文件进行配置yum方式安装的redis配置文件通常在/etc/redis.conf中,打开配置文件找到 ? 1 #requirepass foobared 去掉行前的注 ...
- 常用 SQL语句
Oracle 查看所有表的名字: select table_name from user_tables; 查询特定表的名字:select * from (select table_name t fro ...
- JAVA-面向对象--封装
1. 如果一个类中没有定义构造函数,会自动加上一个空参的默认构造函数 如果定义了一个构造函数,默认的空参构造函数就没有了. 2. this 当成员变量与局部变量重名的时候,可以使用this来区分.th ...
- SQL Server触发器的禁用和启用
禁用: ALTER TABLE trig_example DISABLE TRIGGER trig1 GO 恢复: ALTER TABLE trig_example ENABLE TRIGGER tr ...