如何在 Firefox 的网页上显示 php 错误消息?

how to display php error message on web page in firefox?

这是我在 /var/www/read.php 中的简单代码文件:

error_reporting(E_ALL);
<?php
    echo hello"
?> 

我 运行 在 debian 控制台上 运行 `php /var/www/read.php ' 时报告错误。

PHP Parse error:  syntax error, unexpected '"', expecting ',' or ';' in /var/www/read.php on line 3

但是在firefox中输入127.0.0.1/read.php网页没有报错

我已将 php.ini 中的值设置如下:

error_reporting = E_ALL & ~E_NOTICE    
display_errors = On  

我用命令重启apache2没用:

service apache2 restart

这是我的php信息消息。 在我的 read.php 文件中添加两行是没有用的,在我的 firefox.How 中没有报告错误消息 我可以修复它吗?我的系统是 debian7+php .

<?php
    ini_set('display_errors', 1);
    error_reporting(E_ALL);
    echo hello"
?> 

find  /  -name  'php.ini'
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini

问题解决根据 PHP doesn't show any kind of errors

您应该看到 Apache 读取了哪个 php.ini。控制台通常使用与 Apache 不同的 php.ini。

您可以 phpinfo() 查看 Apache 正在读取哪个配置文件。

但是,在 read.php 文件的开头添加以下行:

init_set("display_errors", 1);

首先,error_reporting() 函数应移动到 <?php ?> 标签内。

典型设置中通常有两个 php.ini 文件(一个由网络服务器使用,另一个由命令行使用)。

在 unix 发行版上,它通常位于 /etc/php 文件夹下方的某个位置,例如 /etc/php/apache2/php.ini.

要确定网络服务器为 PHP 加载了什么配置文件,请在网页中执行一个简单的 phpinfo(); 并搜索 configuration file.

如果您修改了您的网络服务器使用的配置,请确保之后重新启动 Apache,以便它加载新配置。

如果您想以编程方式强制设置,可以使用 ini_set 函数。

对于您的情况,如果您希望在页面上看到任何错误。

<?php

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

foobar();

更新:

如果页面中存在语法错误,添加ini_set('display_errors', 1);将不会执行任何操作,因为语法错误是在脚本执行之前抛出的。尝试创建另一种类型的错误,例如改为调用未知函数,您应该会看到它。

将此代码添加到您的 php 文件中

// Report all PHP errors
error_reporting(-1);

使用 error_reporting(1);error_reporting(TRUE); 并确保没有在任何地方禁用与错误报告有关的任何内容

//To show errors
ini_set('display_errors', 1);
error_reporting(E_ALL);

//To hide error 
ini_set('display_errors', 0);

您还可以将其设置在公共 php 文件或工作文件中..

PHP 有一个坏习惯,当错误与语法相关时,会给出神秘的白屏。要解决这个问题,您可以使用包含函数:

<?php
    ini_set('display_errors',1); 
    error_reporting(E_ALL);
    include "/var/www/read.php";
?> 

现在语法错误不再出现在第一页,PHP 可以 "compile" 它会给您一条关于页面损坏的错误消息。

第一个代码示例有几个问题,应该如下所示:

<?php
    error_reporting(E_ALL);
    echo "hello";
?> 

像所有 PHP 代码一样的第一个错误报告指令需要在 PHP 代码标签内。这应该会导致代码最终出现在 Firefox 的页面上,这不是您想要的。

第二个 echo 作用于一个字符串,该字符串应该以引号开头和结尾。这是语法错误,是无错误消息问题的核心。

第三行必须以分号结尾(少数块级命令除外)。如果有疑问......这实际上不是你的问题,你的代码将 运行 只要代码部分以 ?> 终止,因为 PHP 将假定 ;为你。不过养成每次都;原地踏步的习惯,以后就不会被它绊倒了。

现在假设您不在处于安全模式的主机上运行那么您也可以在代码中的 ini 级别打开错误报告

<?php
    ini_set('display_errors',1); 
    error_reporting(E_ALL);
    echo "hello world";
    unknownfunction() // this will throw errors
?> 

根据您对系统的完全控制这一事实来判断,我会说您应该知道是否打开了安全模式。我还看到您尝试将上述 ini 指令设置为不可用(这是由于我在答案开头解释的语法问题)。

这里有一些您可能感兴趣的进一步阅读: