【问题标题】:White page even with full error_reporting and display_errors即使有完整的 error_reporting 和 display_errors 也是白页
【发布时间】:2011-05-24 08:00:54
【问题描述】:

我在这里遇到了一个非常非常奇怪的情况。我正在使用安装了 Zend Server 的本地开发服务器。我有完整的错误报告和显示错误,但我仍然得到一个白页。当然,我知道我做错了什么,但我想知道我做错了什么。

我目前正在使用的系统在很大程度上依赖于类、包含等,因此我不能简单地“检查”一个页面(即在系统外部独立运行它,直接调用它等等)。那是行不通的。

我检查了语法,这不是问题。我被困住了,想看看我的错误。如果您有任何想法,请告诉我!


为了清楚起见,我已经在使用以下内容:

ini_set('display_errors', true); error_reporting(-1);


在使用自己的错误处理程序 (php.net/set_error_handler) 和一些硬调试(回显、退出等)后,我发现我正在否决稍后使用的变量。该变量曾经是一个对象,但现在是一个 int。奇怪的是,我在非对象上调用函数这一事实没有任何错误......

很奇怪,但我很高兴在我的应用程序中发现了这个错误。

【问题讨论】:

  • 你试过这篇博文中的内容了吗? devcha.com/2007/02/enable-php-error-logging.html
  • 检查 apache 访问日志和 php 错误日志。另外,查看 php.ini 并查看日志记录和错误报告的设置。
  • 您是否正在调用任何与缓冲区混淆的函数,即 flush() ?或任何其他与数据流有关的东西(如 apache 上的 mod_gzip)等?
  • @Ericson578,访问和错误日​​志没有显示任何正常内容。访问日志显示200请求,没有错误日志。
  • @Colinross,没有使用冲洗!但是感谢您的提示!

标签: php zend-server


【解决方案1】:

您应该可以设置error log in your php.ini。一切都应该在那里正确列出。我们将这种方法用于我们的一些网站,因为我们不希望客户能够在生产服务器上看到错误消息。

【讨论】:

  • 奇怪的是,错误日志没有显示任何内容!访问日志显示一个请求,状态码 200..
  • @Ericson578,刚刚通过加载一个不存在的类对其进行了测试,该类确实显示在错误日志和屏幕上..
  • @SiteSafeNL:看起来我们正在处理一个逻辑错误。
  • @SiteSafeNL:机器无法识别逻辑错误(至少在我们拥有非常好的人工智能之前)。这就是逻辑错误的本质。您的代码在语法和语义上都是正确的。您的程序只是没有按照您的想法执行。你使用输出缓冲吗?
  • 想到我正在使用 Dwoo,一个 PHP 模板处理程序。我猜他们正在使用输出缓冲。我能做些什么呢?
【解决方案2】:

尝试记录几个类中的关键变量。在最坏的情况下,为了保持理智,到处添加一些 echo 语句。

 error_log(print_r($var, true));

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2017-08-25
    • 2011-11-06
    • 2010-09-09
    • 1970-01-01
    • 2011-08-28
    相关资源
    最近更新 更多