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

news2024/11/18 13:28:17

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


一,错误显示设置

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

在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,这样在网页中就不会显示错误而是只将错误记录到日志文件中)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1479046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全国夜间灯光指数数据、GDP密度分布、人口密度分布、土地利用数据、降雨量数据

引言 DMSP/OLS的1992-2013年全球遥感影像&#xff0c;包括三种非辐射定标的夜间灯光影像。三种全年平均影像分别是&#xff1a;无云观测频数影像、平均灯光影像和稳定灯光影像。目前地理遥感生态网可提供全国稳定灯光影像免费下载。稳定灯光影像是标定夜间平均灯光强度的年度栅…

java 大学生社团管理系统Myeclipse开发mysql数据库web结构jsp编程计算机网页项目

一、源码特点 java 大学生社团管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5…

概率基础——多元正态分布

概率基础——多元正态分布 介绍 多元正态分布是统计学中一种重要的多维概率分布&#xff0c;描述了多个随机变量的联合分布。在多元正态分布中&#xff0c;每个随机变量都服从正态分布&#xff0c;且不同随机变量之间可能存在相关性。本文将以二元标准正态分布为例&#xff0…

免费pr素材(漂亮的波浪图形动画背景视频素材)下载

10个漂亮的免费波浪图形动画pr素材&#xff0c;PR动态背景视频素材mogrt下载。 特点&#xff1a;Premiere Pro 2023或更高版本&#xff0c;超高清分辨率&#xff1a;38402160&#xff0c;每秒25帧的帧速率&#xff0c;包括教程视频。来自pr素材网&#xff0c;下载地址&#xff…

数字孪生与智慧交通的融合发展:推动交通行业数字化转型,构建智慧城市新生态

随着信息技术的快速发展和城市化进程的深入推进&#xff0c;交通行业正面临着前所未有的机遇与挑战。传统的交通管理模式已难以满足日益增长的交通需求&#xff0c;而数字化转型则成为了推动交通行业创新发展的必由之路。数字孪生技术作为一种前沿的信息技术手段&#xff0c;为…

Echarts图标初始化实例的时候传入的参数

一般我们初始化实例的时候都是这么写的 其实echarts.init()还可以传入另外两个选项&#xff0c; 第二个选项为主题色 分为深色主题以及浅色主题&#xff0c;默认为浅色主题&#xff0c;传入light 深色主题的话可以传入dark 第三个选项为option 但是用得比较多的是渲染器ren…

MySQL 使用 pt-archiver 删除数据

文章目录 前言1. 环境准备1.1 模拟造数1.2 工具安装 2. 删除数据2.1 批次删除表2.2 原理解析2.3 批处理思路 后记 前言 在线核心业务都会有日志表&#xff0c;随着业务持续运行&#xff0c;日志表每天都在增大&#xff0c;最后超过阈值触发空间使用率告警。DBA 处理空间告警时…

WPF 滑动条样式

效果图&#xff1a; 浅色&#xff1a; 深色&#xff1a; 滑动条部分代码&#xff1a; <Style x:Key"RepeatButtonTransparent" TargetType"{x:Type RepeatButton}"><Setter Property"OverridesDefaultStyle" Value"true"/&g…

探索反距离加权的深度:一种用于地理数据分析的空间插值方法

目录 一、介绍 二、方法论 三、应用 四、优势 五、局限性 六、代码 七、结论 一、介绍 反距离加权 &#xff08;IDW&#xff09; 是一种广泛用于地理信息系统 &#xff08;GIS&#xff09; 和环境科学的空间插值技术&#xff0c;用于根据附近位置的值估计任何位置的缺失值。它的…

『Linux从入门到精通』第 ㉒ 期 - 动静态库

文章目录 &#x1f490;专栏导读&#x1f490;文章导读&#x1f427;什么是库&#xff1f;&#x1f427;为什么要有库&#xff1f;&#x1f427;写一个自己的库&#x1f426;方法一&#x1f426;方法二 静态库&#x1f426;标准化&#x1f426;方法三 动态库&#x1f426;配置动…

小马识途营销顾问解析舆情处置方法

大部分知名企业都逃不过负面舆情这一关&#xff0c;有负面不一定企业就不规范&#xff0c;产品就不好。其实&#xff0c;企业做大了&#xff0c;难以做到尽善尽美&#xff0c;有时候是同行不正当竞争造成的…… 总之&#xff0c;网络平台上面的负面舆情信息的影响不可小视&…

深入Linux内核(进程篇)—进程切换之ARM体系架构 简单总结

context_switch函数完成Arm架构Linux进程切换&#xff0c;调用两个函数&#xff1a; 调用switch_mm() 完成用户空间切换&#xff0c;刷新I-CACHE&#xff0c;处理ASID和TLB&#xff0c;页表转换基址切换&#xff08;即把TTBR0寄存器的值设置为新进程的PGD&#xff09;&#xf…

软件更新快讯-Obsidian更新-1.5.8 linux Appimage直装

更新内容 1.5.8&#xff1a; 从具有相同属性的文件导航时&#xff0c;固定属性不会显示。 修复了Home和End在导航文档顶部和底部时不总是起作用的问题。 Fixed properties not appearing when navigating from a file that has the same properties.Fixed Home and End not a…

uniapp实战:父子组件传参之子组件数量动态变化

需求说明 现有的设置单元列表,每个带有虚线加号的可以看做是一组设置单元,点击加号可以添加一组设置单元.点击设置单元右上角可以删除对应的设置单元. 实现思路说明 利用数组元素添加或是删除的方式实现页面数量动态变化.由于每个设置单元内容都相同所以单独封装了一个子组件.…

k8s 集群调度,标签,亲和性和反亲和性,污点和容忍,pod启动状态 排错详解

目录 pod启动创建过程 kubelet持续监听的原因 调度概念 调度约束 调度过程 优点 原理 优先级选项 示例 指定调度节点 标签基本操作 获取标签帮助 添加标签&#xff08;Add Labels&#xff09;&#xff1a; 更新标签&#xff08;Update Labels&#xff09; 删除标…

怎么判断主机电源有没有坏?是电源开关键

如何判断主机电源是否坏了&#xff1f; 关闭计算机电源&#xff0c;然后打开主机箱并取出电源。 因为电源线都是接在主板上的&#xff0c;所以可以先拍张照片&#xff0c;这样就可以知道哪根线是哪根了。 然后轻轻地拉出线。 如下图所示&#xff0c;电源线已从主板等处拔掉。…

electron打包前端项目

1.npm run build 打包项目文件到disk文件夹 2.安装electron:npm install electron 打开后进到/dist里面 然后把这个项目的地址配置环境变量 配置环境变量&#xff1a;在系统变量的path中添加进去 配置成功后&#xff0c;electron -v看看版本。 3.创建主程序的入口文件main.…

如何修改“Ubuntu 主机名“Windows系统?

一、修改&#xff08;node2&#xff09; hostnamectl set-hostname node2 二、重启 sudo reboot now

Linux系统加固:限制root用户SSH远程登录

Linux系统加固&#xff1a;限制root用户SSH远程登录 一、前言二、禁止root用户远程登录系统1、执行备份2、先新建一个普通用户并设置高强度密码3、编辑/etc/ssh/sshd_config文件4、重启SSH服务5、补充&#xff1a;查看ssh协议版本 三、验证root用户是否可以远程登录系统 &#…

(k8s中)docker netty OOM问题记录

1、首先查看docker的内存占用情况&#xff1a; docker top 容器名 -u 查看内存cpu占用率&#xff08;容器名来自kubectl describe pod xxx或者docker ps&#xff09; 可以看出内存一直增长&#xff0c;作为IO代理这是不正常的。 2、修改启动参数和配置文件 需要注意的是为了…