【问题标题】:PHP Error message in Firefox not ChromeFirefox 而非 Chrome 中的 PHP 错误消息
【发布时间】:2013-08-16 05:19:45
【问题描述】:

今天早些时候,我们的一个网站开始输出一些 PHP 警告,这些警告只能通过 Firefox 看到,但奇怪的是,这些错误不会在 Chrome 或 Safari 中显示。

我查看了请求/响应标头,并在 Firefox 的响应标头中发现了条目

    X-pad: avoid browser bug

这可能是两个浏览器之间存在差异的原因吗?据我所知,X-pad 是针对古代浏览器中存在的错误的一种解决方法。

以下是 Firefox 的错误截图。

Error Message

编辑。

找出错误的原因以及 chrome 未显示警告的原因。如here 所记录的,我们网站上的许多页面都注入了一些代码。该代码忽略了 safari 和 chrome ,但没​​有忽略 Firefox。因此出现差异。

至于修复,只需删除代码的所有实例。受影响的是 index.php/template.php/page.php 文件的实例。

【问题讨论】:

  • 你能给我们一个现场网站的链接吗?我想检查一下错误是否出现在两个浏览器的源代码中。
  • 请将错误信息粘贴为文本,而不是屏幕截图。并显示引发关于第 22 行警告的文件的第 22 行。
  • 我猜它们仍然在两者的源代码中,只是浏览器以不同的方式呈现无效的 html。
  • 关闭通知的错误报告或修复通知。您正在访问以前未设置的变量或数组/字符串索引。
  • @Maerlyn - 错误只出现在 Firefox 中。

标签: php apache google-chrome firefox browser


【解决方案1】:

您获得的未初始化字符串是因为您的变量未设置在数组中。确保已设置。

 if (isset($somevar['var']))
 {
      // etc..
 }

您的 session_start() 代码不在 PHP 文件的顶部。应该在所有脚本执行之前调用session_start()

通过 PHP 手动关闭显示错误:

 ini_set("display_errors", 0);

将所有错误放到error.log 文件中,而不是在 PHP 生产环境中显示错误。

X-Pad 是来自 apache 的响应的标头附加器。所以这不是发生错误的方式。 X-Pad 与您的错误无关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-10
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多