• php基础学习之错误处理(其二)


    在实际应用中,开发者当然不希望把自己开发的程序的错误暴露给用户,一方面会动摇客户对己方的信心,另一方面容易被攻击者抓住漏洞实施攻击,同时开发者本身需要及时收集错误,因此需要合理的设置错误显示与记录错误日志


    一,错误显示设置

    错误显示设置用于设置哪些错误该显示,以及该如何显示

    在php中,其实有两种方式来设置当前脚本的错误处理方式

    (一)php配置文件

    在php.ini文件基于全局的配置,该文件下有两个参数

    分别是error_reporting和display_errors,前者用于设置显示什么级别的错误,后者用于设置是否显示错误

    (注:该知识点对网安SQL注入有意义,此处不细讲)

    (二)php脚本中设置

    error_reporting()

    该函数可以在php脚本中调用,以设置错误的显示级别,需要传入一个错误代号(常量),见本篇【】->php基础学习之错误处理(其一)-CSDN博客

    例如传入0时,将不显示任何错误信息

    当调用error_reporting()函数不传入参数时也是符合语法的,此时它将返回当前php脚本设置的错误级别

    如下图所示:在上一篇【三.(六)】已经验证过各错误代号(常量)的具体值,其中E_ALL的值是32767对应的二进制数,E_NOTICE的值是8对应的二进制数,那么表达式【E_ALL & ~E_NOTICE】(该表达式的含义是除去NOTICE级别的错误)的结果正好是下面脚本的输出结果32759,说明error_reporting()函数返回的错误级别是正确的->php基础学习之错误处理(其一)-CSDN博客

    ini_set()

    和【一.(一)】本质是一样的,通过修改配置文件中的参数进行设置,但是脚本中的设置优先级比配置文件中的优先级更高(如果配置文件和脚本文件中的配置项不一致,以脚本中的配置优先),当然前提是脚本中的相关代码被执行

    该函数有两个参数,第一个参数传入一个字符串(这个字符串就是配置项的名称),第二个参数传入该配置项对应的值

    例如在上文提到的error_reporting,使用ini_set()函数设置显示


    二,错误日志设置

    在生产环境中无可避免会发生错误,但作为开发者又不希望展示给用户看,所以需要使用日志记录错误以便做出相应debug

    参考本篇->如何配置使用php.ini中的错误日志功能? (newsn.net)

    (一)开启日志功能

    php日志功能的开关由参数【log_errors】决定,找到它并赋值为On

    (二)指定路径

    错误日志设置需要定义好error_log配置参数,并赋予该配置参数一个值(此值是一个.log文件的路径<注意路径的格式,一般用左斜杠>,将会保存程序测试或使用时发生的错误,如果需要关闭记录日志的功能,直接将此参数以及值注释或者删除即可)

    (三)测试

    (实际开发中一般将【display_errors】或【display_startup_errors】等参数设置为Off,这样在网页中就不会显示错误而是只将错误记录到日志文件中)

  • 相关阅读:
    mac 竖屏显示屏鼠标无法从显示器移到mbp上
    关于VS2019启动调试项目时提示拒绝访问
    休闲卤味的商业江湖里,周黑鸭的巨变与出路
    javascript自定义事件的观察者模式写法和用法以及继承
    两个必须更新浏览器的理由,危险就在你身边
    IBDP学生怎么写PS?
    Git项目演练
    Taro3的编译配置
    【C++】哈希算法
    sqllabs第46关 order by 注入(通过盲注)
  • 原文地址:https://blog.csdn.net/liKeQing1027520/article/details/136332246