php开发那些年你遇到的错误与异常
浏览量:394
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
- 可以把错误日志保存在系统日志中 
- 可以把错误文件以邮件的格式发送给指定某个人 

神回复
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。