39

这是我的 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。没发生什么事。

4

7 回答 7

58

你的文件有语法错误,所以你的文件没有被解释,所以设置没有改变,你有一个空白页。

您可以将文件分成两部分:

文件index.php

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

文件错误.php

<?
    echo('catch this -> ' ;. $thisdoesnotexist);
于 2013-06-05T07:16:22.970 回答
10

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

您不能在有语法错误的文件中更改错误报告设置(或者实际上,做任何事情)。

于 2013-06-05T07:14:34.367 回答
10

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

<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
于 2013-06-05T07:15:42.663 回答
4

在您的php.ini文件中检查display_errors。如果它关闭,则按如下方式将其打开:

display_errors = On

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

请阅读error_reporting int

于 2013-06-05T07:12:13.080 回答
2

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

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

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

于 2018-05-17T09:44:51.777 回答
0

打开 ini 文件中的显示错误:

display_errors 字符串

于 2013-06-05T07:10:07.040 回答
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 applications error_reporting(E_ALL);

  4. 然后检查phpinfo();。检查display_errors。现在是on,仅适用于此应用程序

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

欢呼!现在您可以在控制台中看到错误。如果错误未显示在您的控制台中并且页面加载失败并在网络中显示红色警报,请不要担心。

检查您是否已启用modsecurity并且它是否SecRule为 PHP 编写了任何规则检查。modsecurity在您的开发期间删除该安全或禁用该安全。

于 2021-06-04T12:21:43.900 回答