error_reporting(E_ALL)不会产生错误

时间:2013-06-05 07:07:33

标签: php

这是我的php脚本 -

<?php
  error_reporting(E_ALL);
  echo('catch this -> ' ;. $thisdoesnotexist);
?>

如果要执行它,显然应该显示出来。

我看到的只是一个空白页面。为什么error_reporting(E_ALL)无效?

<?php
  ini_set("display_errors", "1");
  error_reporting(E_ALL);
  echo('catch this -> ' ;. $thisdoesnotexist);
?>

也没有帮助。我得到的只是一个空页。

我去过php.ini并设置display_errors = Ondisplay_startup_errors = On。 没有任何事情发生。

7 个答案:

答案 0 :(得分:53)

您的文件有语法错误,因此您的文件未被解释,因此设置未更改且您有空白页。

您可以将文件分成两个。

的index.php

<?php
ini_set("display_errors", "1");
error_reporting(E_ALL);
include 'error.php';

error.php

<?
echo('catch this -> ' ;. $thisdoesnotexist);

答案 1 :(得分:9)

该错误是解析错误解析器在浏览代码时抛出它,试图理解它。 在解析阶段尚未执行任何代码。由于尚未执行error_reporting行,因此错误报告设置尚未更改。

您无法在语法错误的文件中更改错误报告设置(或实际上,任何)。

答案 2 :(得分:9)

在php.ini文件中检查display_errors。我认为它已经关闭了。

<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);

答案 3 :(得分:4)

在php.ini文件中检查display_errors。如果它已关闭,请按以下方式启用:

display_errors = On

它应显示警告/通知/错误。

请阅读本文

http://www.php.net/manual/en/errorfunc.configuration.php#ini.error-reporting

答案 4 :(得分:2)

你可以尝试将它放在你的php.ini中:

ini_set("display_errors", "1");
error_reporting(E_ALL);

在php.ini文件中,您也可以设置error_reporting();

答案 5 :(得分:0)

答案 6 :(得分:0)

只需执行以下操作

  1. 检查 phpinfo(); // 搜索 display_errors 是打开还是关闭

  2. 如果是 On,只需在主索引文件中添加 error_reporting(E_ALL);

  3. 如果是Off,只需将其添加到您的主索引文件中

    ini_set("display_errors", "1"); //this is the instant setup for individual apps error_reporting(E_ALL);

  4. 然后检查phpinfo(); //搜索display_errors,现在是on,只针对这个应用

  5. 然后创建任何代码错误以进行测试并重新加载页面

万岁!!!现在您可以在控制台中看到错误。如果错误未显示在您的控制台中并且页面加载失败并在网络中出现红色警报?别担心

检查您是否启用了 **modsecurity** 并且它在 SecRule 中为 php 编写了任何规则检查,删除该安全程序或在您的开发期间禁用 modsecurity