5

在远程服务器上没有问题,但在 localhost (xampp 3.1.) 中,我无法关闭报告通知。

<?php
$Fname = $_POST["Fname"];
...

结果:

Notice: Undefined index: Fname in D:\xampp\htdocs\xx\php01\form01.php on line 6

php.ini

; Default Value: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
; Development Value: E_ALL
; Production Value: E_ALL & ~E_DEPRECATED & ~E_STRICT
; http://php.net/error-reporting
error_reporting = E_ALL & ~E_NOTICE  //shouldn't this line turn off notice reporting ?

有什么建议吗?

4

5 回答 5

14

将此代码写在文件的开头。

ini_set('display_errors', 0);
error_reporting(E_ERROR | E_WARNING | E_PARSE); 

编辑1

如果您不想使用上面的行,那么您必须在@之前写$_POST来禁止通知,例如

$Fname = @$_POST["Fname"];

编辑 2

这条线error_reporting = E_ALL & ~E_NOTICE也改变display_errors = Off了,尽管它的编程习惯不好。

于 2013-11-12T19:45:22.680 回答
3

如果您正在运行 XAMPP 并想关闭通知(或其他功能):
1. 确保编辑正确的 INI 文件(从控制面板中选择配置)
2. 打开 display_errors=on
3. 打开 error_reporting=E_ALL & ~E_NOTICE (这只会抑制通知错误)
4.重要- 确保 XAMPP 不会在文件下方覆盖您的设置(阅读第一组设置上方的通知)
5. 保存文件后停止并启动 Apache

于 2015-03-04T20:16:31.580 回答
1

试着在你的线路phpinfo();之前做一个。$Fname = $_POST["Fname"];error_reporting 属性值是多少?请参阅以了解表中显示的值。

如果不是您所期望的,请检查该属性是否未被 php.ini 更改。您也可能编辑了错误的 php.ini 文件:XAMPP 倾向于复制原始 php.ini 文件并创建自己的文件。使用phpinfo();,在表中搜索'php.ini'字符串:你会找到所使用的php.ini文件的路径。

最后一件事,也许问题是您在更改 php.ini 文件后没有正确重新启动 apache。问题是 xamp 是 apache 服务的一个独特进程。关闭 XAMP 不会使 apache 服务停止,你最好使用 XAMPP 控制面板来停止/启动 apache。

于 2013-11-12T19:36:04.767 回答
1

解决这个问题最简单的方法如下: 1. 关闭 Apache 服务器 2. 进入 c:\xampp\php\ 3. 将 php.ini 重命名为 php.ini.bak 4. 将 php.ini-production 重命名为php.ini 5. 再次开启服务器。

它有一个缺陷,它将一切都恢复到生产模式。但您可以随时撤消此操作。

于 2015-04-16T17:58:11.880 回答
1

请记住通过删除 ';' 取消注释 php.ini 中的 error_reporting 在'error_reporting'之前。

在这里真的浪费了我的时间

于 2020-06-23T16:45:58.883 回答