php开发那些年你遇到的错误与异常
浏览量:391
php常见错误级别
一、语法错误
二、环境错误
三、逻辑错误
php错误有很多,重点说一下常见的错误。
Deprecated最低级的错误
notice错误
warning警告错误
fatal error致命错误
parse error语法解析错误 (最高级别的错误)
e_user相关错误
如何来开启错误配置级别选项
如何设置错误级别
php.ini
2.在程序里面直接修改
不显示错误:error_reporting(0)
显示所有错误:error_reporting(E_ALL)
3.ini_set运行程序时设置配置选项
ini_ser("error_reporting",0)
ini_ser("error_reporting",-1)
ini_ser("diaplay_errors",0)
4.trigger_error触发php错误
<?php $number1 = 1; $number2 = 2; if(is_numeric($number1)&&is_numeric($number2)){ //trigger_error("$number1+$number2",E_USER_NOTICE); //trigger_error("$number1+$number2",E_USER_WARNING); trigger_error("$number1+$number2",E_USER_ERROR);//程序不会向下执行 }else{ echo $number1+$number2; } echo "程序正在运行";
把错误信息记录到日志中
修改配置文件例如:
例子:加入用户想登陆你的网站,模拟登陆,我们就可以写一个简单的表单来记录这里登陆
可以把日志文件记录到指定目录中
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <form action="./doAction.php" method="post"> 用户名:<input type="text" name="uname"><br/> 密码:<input type="text" name="upwd"><br/> <input type="submit"> </form> </body> </html>
<?php header("content-type:text/html;charset=utf-8"); ini_set('display', 0); error_reporting(-1); ini_set("log_errors", 1); ini_set("date_timezone", "PRC"); ini_set("error_reporting","E:\error\esult.txt"); ini_set('ignore_repeated_errors', 'on'); ini_set("ignore_repeated_source", 'on'); $username = $_POST['uname']; $password = $_POST ['upwd']; if($username=='admin'&&$password=='admin'){ echo "登陆成功"; }else{ $date = date("Y-m-d H:i:s",time()); $ip = $_SERVER['REMOTE_ADDR']; $message = "用户:{$username},密码:{$password}在{$date}尝试登陆网站,IP地址为:{$ip}"; error_log($message); header("localhost:log.php"); }
查看错误记录日志
[13-Jun-2016 12:35:54 Europe/Paris] 用户:12345密码:而且为在2016-06-13 12:35:54尝试登陆网站,IP地址为:127.0.0.1
[13-Jun-2016 12:38:30 Europe/Paris] 用户:1213,密码:234132在2016-06-13 12:38:30尝试登陆网站,IP地址为:127.0.0.1
可以把错误日志保存在系统日志中
可以把错误文件以邮件的格式发送给指定某个人
神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。