首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

php 显示错误的函数

在PHP中,显示错误的函数主要有两个:error_reporting()ini_set(),以及用于输出错误的 trigger_error() 函数。

基础概念

  • error_reporting(): 这个函数用于设置哪些级别的错误信息需要报告或记录。它接受一个整数值作为参数,该值代表了不同的错误级别组合。
  • ini_set(): 这个函数用于改变PHP配置选项的值。例如,可以通过它来开启或关闭错误报告。
  • trigger_error(): 这个函数用于生成用户级别的错误、警告或通知信息。

相关优势

  • 调试方便: 显示错误可以帮助开发者快速定位问题所在,提高开发效率。
  • 安全性: 在生产环境中关闭错误显示可以防止敏感信息泄露。
  • 灵活性: 可以根据不同的环境(开发、测试、生产)设置不同的错误报告级别。

类型

  • E_ERROR: 致命的运行时错误。这类错误通常导致脚本终止。
  • E_WARNING: 非致命的运行时错误。脚本会继续执行。
  • E_NOTICE: 运行时通知。这些是脚本正常运行时产生的提示性信息。
  • E_USER_ERROR: 用户自定义的致命错误。
  • E_USER_WARNING: 用户自定义的非致命警告。
  • E_USER_NOTICE: 用户自定义的通知。

应用场景

  • 开发环境: 开启所有级别的错误报告,以便于调试。
  • 测试环境: 根据需要开启或关闭某些级别的错误报告。
  • 生产环境: 通常只开启 E_ERROR 级别的错误报告,或者完全关闭错误显示,以避免敏感信息泄露。

示例代码

代码语言:txt
复制
// 开启所有错误报告
error_reporting(E_ALL);
// 设置错误报告级别为显示所有错误
ini_set('display_errors', 1);

// 触发一个用户级别的错误
trigger_error("这是一个用户自定义的错误", E_USER_ERROR);

遇到的问题及解决方法

问题: 在生产环境中,错误信息被显示在客户端浏览器上,可能导致敏感信息泄露。

原因: 通常是因为在生产环境中没有正确配置错误报告设置。

解决方法:

代码语言:txt
复制
// 关闭错误显示
ini_set('display_errors', 0);
// 设置错误日志文件路径
ini_set('error_log', '/path/to/your/error_log.txt');
// 设置错误报告级别为只记录 E_ERROR
error_reporting(E_ERROR);

确保在生产环境中使用上述配置,以避免将错误信息暴露给最终用户。

参考链接

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【php】设置php显示隐藏错误信息

windows系统开关php错误提示: 如果不具备修改php.ini的权限,可以将如下代码加入php文件中: ini_set("display_errors", "On"); error_reporting...= On 修改为 display_errors = off 注意:如果你已经把PHP.ini文件复制到windows目录下,那么必须同时把c:windows/php.ini里的display_errors...= On 修改为display_errors = off PHP .ini中display_errors = Off失效的解决 在linux系统中开启与关闭错误提示方法差不多,不过我还是具体给大家介绍一下...打开php.ini文件。 以我的ubuntu为例,这个文件在: /etc/php5/a(www.jb51.net)pache2 目录下。 2....修改Apache的 httpd.conf, 以我的 Ubuntu 为例, 这个文件在:/etc/apache2/ 目录下,这是一个空白文件。

2.6K20

PHP的microtime()函数 & 浮点数显示精度

咳咳,我一直对这个函数的命名挺纠结的,明明返回的是秒,非要在名字带个micro,总让我以为返沪的是微秒(microseconds)。...其实这个函数的功能是返回带微秒的时间,PHP中声明如下: mixed microtime ([ bool $get_as_float = FALSE ] ) 关于返回值,文档中是这样描述的 By default...其实这只是由于浮点数显示精度设定导致的,并不影响运算(比如求时间差值)精度。 如果想让其更高精度的显示,可以试试如下代码: <?...C3TZR1g81UNaPs7vzNXHueW5ZM76DSHWEY7onmfLxcK2iPJtsRXm4j3pugmKFsaTvJTiaXsgUnfCcHyA4DwDmQYgZ3djgQFNHe14g5iQeociD2HpwE4Mpdt.png 可见之前默认的浮点数显示精度为...12位,我们设置为16位后,就显示到小数点后6位啦。

1.4K00
  • PHP不显示错误信息的解决方法

    在有的服务器上,PHP代码执行出错时,浏览器只会显示500错误,这样不利于程序员定位错误代码。...开启PHP错误信息显示有2个设置: 1:error_reporting = 错误报告级别(如果是开发模式,请设置为:E_ALL) 2:display_errors = On 这2个设置缺一不可。...256 E_USER_ERROR 用户自定义的错误消息。这就像由使用PHP函数trigger_error(程序员设置E_ERROR) 512 E_USER_WARNING 用户自定义的警告消息。...这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告) 1024 E_USER_NOTICE 用户自定义的提醒消息。...这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集) 2048 E_STRICT 编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。

    61330

    PHP error_reporting() 错误控制函数功能详解

    16 E_CORE_ERROR PHP启动时初始化过程中的致命错误。 32 E_CORE_WARNING PHP启动时初始化过程中的警告(非致命性错)。...256 E_USER_ERROR 用户自定义的错误消息。这就像由使用PHP函数trigger_error(程序员设置E_ERROR) 512 E_USER_WARNING 用户自定义的警告消息。...这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告) 1024 E_USER_NOTICE 用户自定义的提醒消息。...这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集) 2048 E_STRICT 编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。...part of E_ALL as of PHP 6.0) 例子: 任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。

    48310

    PHP error_reporting() 错误控制函数功能详解

    8 E_NOTICE 运行时提醒(这些经常是你代码中的bug引起的,也可能是有意的行为造成的。) 16 E_CORE_ERROR PHP启动时初始化过程中的致命错误。...256 E_USER_ERROR 用户自定义的错误消息。这就像由使用PHP函数trigger_error(程序员设置E_ERROR) 512 E_USER_WARNING 用户自定义的警告消息。...这就像由使用PHP函数trigger_error(程序员设定的一个E_WARNING警告) 1024 E_USER_NOTICE 用户自定义的提醒消息。...这就像一个由使用PHP函数trigger_error(程序员一个E_NOTICE集) 2048 E_STRICT 编码标准化警告。允许PHP建议如何修改代码以确保最佳的互操作性向前兼容性。...be part of E_ALL as of PHP 6.0) 例子: 任意数目的以上选项都可以用“或”来连接(用 OR 或 |),这样可以报告所有需要的各级别错误。

    78270

    PHP错误实例详解错误级别配置项设置错误级别手动触发PHP错误自定义错误处理器脚本即将关闭前执行的函数

    php 配置项 php.ini与错误相关的配置项: 选项 描述 error_reporting 设置错误报告的级别 display_errors 是否显示错误 log_errors 是否将错误记录到日志中...的error_reporting, 需要重启php 在程序中设置error_reporting()函数 在程序中使用ini_set()函数设置 echo error_reporting(); // 结果是用数字值表示...; // 不会运行 自定义错误处理器 我们可以通过set_error_handler函数接管php的错误处理方法 header('content-type:text/html;charset=utf-8...settype($var, 'test'); md6('又来加密了'); // Fatal error不会被自定义的错误处理器接管 脚本即将关闭前执行的函数 有时,我们需要在php脚本关闭时进行一些操作...,此时可以用register_shutdown_function(),该函数能让php程序在意外终止时垂死挣扎完成最后的使命。

    1.4K20

    如何给PHP添加多个错误处理函数

    一些常规的PHP框架都会对PHP的错误、异常进行异常处理封装,方便框架日志记录,开发的时候方便处理。我们先看看几个框架错误处理: Laravel ?...Yii2 在application构造函数中初始化ErrorHandler组件,通过调用register方法注册错误处理,将PHP的错误转换成异常,通过异常处理方式显示处理。...thinkphp5.1在thinkphp\Base.php中使用Error::register()注册了错误处理函数。...在错误处理函数中将错误转换成异常记录日志输出错误提示 上述三种PHP框架对错误的处理都差不多,都使用的是set_error_handler,register_shutdown_function两个函数。...当我们设置回调函数的同时也能保持上一个回调函数,因此在我们的回调函数中如果遇到不符合要求的错误,还是可以调用上一个错误处理函数。

    1.9K20

    PHP的错误机制总结

    错误控制 php中有很多配置和参数是可以控制错误,以及错误的日志显示的。第一步,我们需要了解的是php中的有关错误的配置有哪些?...我们按照php+php-fpm的模型来说,会影响php错误显示的其实是有两个配置文件,一个是php本身的配置文件php.ini,另外一个是php-fpm的配置文件,php-fpm.conf。...php.ini中的配置 error_reporting = E_ALL // 报告错误级别,什么级别的 error_log = /tmp/php_errors.log // php中的错误显示的日志位置...,记得上面说的有几个Core类型的错误是启动时候发生的,这个就是控制这些错误是否显示页面的。...error_log是显示错误日志的位置,这个在php-fpm中往往会被重写,于是往往会发现的是cli和fpm的错误日志竟然不是在同一个文件中。

    1.3K60

    php启动服务过程中报xx函数没有找到的错误

    解决办法: • 首先找到缺失函数对应的扩展名,这个可以自行搜索。...• 然后运行php -m看对应的扩展是否存在,如果存在的话就直接去php.ini 中开启扩展,如果不存在就需要自行安装,当然可以看看有没有现成的包,直接install,如果没有就自行手动编译安装。...以cygwin举例,提示找不到mb_strlen这个函数,直接搜索到其对应的扩展是mb-string,点开https://cygwin.com/packages/package_list.html,Ctrl...+F一下, 找到对应的名称为php-mbstring,既然在包里存在,我就可以使用apt-cyg install php-mbstring安装。...当然没有在包里不存在的扩展,如swoole、redis,就自己手动编译安装,再添加到php.ini中就可以了。

    83520
    领券