在远程服务器上没有问题,但在本地主机(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 ?
有什么建议吗?
将此代码写入文件的开头。
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
,尽管它是不好的编程习惯。
如果您正在运行 XAMPP 并想要关闭通知(或其他功能):
1. 确保编辑正确的 INI 文件(从控制面板中选择配置)
2.打开display_errors=on
3. 打开 error_reporting=E_ALL & ~E_NOTICE (这只会抑制通知错误)
4. 重要 - 确保 XAMPP 不会覆盖文件下方的设置(请阅读第一组设置上方的通知)
5.保存文件后停止并启动Apache
尝试在
phpinfo();
线之前做一个 $Fname = $_POST["Fname"];
。 error_reporting 属性值是多少?请参阅 this 或 this 了解表中显示的值。
如果这不是你所期望的,请检查该属性是否被 php 更改。 您也可能编辑了错误的 php.ini 文件:XAMPP 倾向于复制原始的 php.ini 文件并创建自己的文件。使用
phpinfo();
,在表中搜索“php.ini”字符串:您将找到所使用的 php.ini 文件的路径。
最后一件事,也许问题是你更改 php.ini 文件后没有正确重新启动 apache。问题是 xamp 是 apache 服务的一个独特进程。关闭XAMP不会使apache服务停止,您最好使用XAMPP控制面板来停止/启动apache。
解决这个问题最简单的方法如下: 1.关闭Apache服务器 2. 进入c:\xampp\php\ 3.将php.ini重命名为php.ini.bak 4. 将 php.ini-product 重命名为 php.ini 5. 再次打开服务器。
它有一个缺陷,它将所有内容恢复为生产模式。但您随时可以撤消此操作。
请记住通过删除 ';' 取消注释 php.ini 中的 error_reporting在“错误报告”之前。
这里真的浪费了我的时间