【问题标题】:I can't see some PHP errors [duplicate]我看不到一些 PHP 错误 [重复]
【发布时间】:2012-12-12 01:12:11
【问题描述】:

可能重复:
header() error not shown in php

我的/etc/php5/apache2/php.ini 文件有下一个配置:

display_errors = On
log_errors = On
error_reporting = E_ALL | E_STRICT

我可以在浏览器中查看Undenifed variableParse error 等错误,但使用下一个代码

<!DOCTYPE html>
<?php
   header('hola: adios');
?>

我看不到 Headers already sent 错误。同样使用 Chrome 的开发者工具,我可以看到标题 hola: adios 已设置。 我怎么能看到这些类型的错误? 谢谢。

【问题讨论】:

  • 您开启了自动输出缓冲,因此没有错误......
  • @Wrikken 我在我的 php.ini 中设置了output_buffering = Off 并重新启动了 apache 但没有区别。
  • 好吧,在这种情况下,phpinfo() 在那个确切点上对输出缓冲区、错误报告级别、显示错误设置等有什么看法? ?
  • @Wrikken 抱歉,apache 没有重新启动。现在我可以看到错误了。但这让我想知道:如果我们可以设置 output_buffering = Off 那么为什么还要费心 PHP 结束标记呢?谢谢。
  • Headers already sent "Outbut buffering workaround" 以及为什么它是业余的。

标签: php


【解决方案1】:

它没有向您显示错误,因为它不是! 功能是

header(string,replace,http_response_code)

字符串可以是任何你想设置为标题字段的东西:值。没有可以使用或不可以使用的列表。您始终可以拥有自定义标题字段。

查看手册 - http://php.net/manual/en/function.header.php

<?php
header('inappropriate stuff');
?>

试试这个,你不会在标头包中得到任何东西,因为 php 在将标头字段与值分开的字符串中找不到冒号 ':' 作为分隔符。

注意:如果您打算将它与 session 一起使用,session_start() 必须是在执行开始时运行的第一个函数。

【讨论】:

  • 你没有抓住重点,这与标题的种类无关,而是在调用header之前已经输出了html。
  • -1,注意你的语言。
  • 可能我没有明白他试图通过这个问题来反映的重点。但是这让我想知道为什么它没有显示错误。是的。输出缓冲..
  • 哦!!对于那个很抱歉。我只是要编辑它,而你做了@Charles。很抱歉。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-27
相关资源
最近更新 更多