当前页面的脚本发生错误 (安全篇)PHP 的错误机制详解

11/27 21:22:17 来源网站:辅助卡盟平台

functionchange(&$var){

$var+=10;

}

$var=1;

win7当前脚本发生错误_当前页面的脚本发生错误_当前脚本发生错误是什么意思

change(++$var);

// E_STRICT

E_RECOVERABLE_ERROR

这个级别其实是ERROR级别的,但是它是期望被捕获的,如果没有被错误处理捕获,表现和E_ERROR是一样的。

经常出现在形参定义了类型,但调用的时候传入了错误类型。它的错误提醒也比E_ERROR的fatal error前面多了一个Catachable的字样。

//Catchable fatal error: Argument 1 passed to testCall() must be an instance of A, instance of B given, called in /tmp/php/index.php on line 37 and defined in /tmp/php/index.php on line 33

classA{

}

classB{

}

functiontestCall(A$a){

}

$b=newB();

testCall($b);

E_DEPRECATED

这个错误表示你用了一个旧版本的函数当前页面的脚本发生错误,而这个函数后期版本可能被禁用或者不维护了。

比如curl的CURLOPT_POSTFIELDS使用@FILENAME来上传文件的方法

// Deprecated: curl_setopt(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead in /tmp/php/index.php on line 42

$ch=curl_init("http://www.remotesite.com/upload.php");

curl_setopt($ch,CURLOPT_POSTFIELDS,array('fileupload'=>'@'."test"));

E_CORE_ERROR, E_CORE_WARNING

这两个错误是由PHP的引擎产生的,在PHP初始化过程中发生。

E_COMPILE_ERROR, E_COMPILE_WARNING

win7当前脚本发生错误_当前页面的脚本发生错误_当前脚本发生错误是什么意思

这两个错误是由PHP引擎产生的,在编译过程中发生。

E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE, E_USER_DEPRECATED,

这些错误都是用户制造的,使用trigger_error,这里就相当于一个口子给用户触发出各种错误类型。这个是一个很好逃避try catch异常的方式。

trigger_error("Cannot divide by zero",E_USER_ERROR);

// E_USER_ERROR

// E_USER_WARING

// E_USER_NOTICE

// E_USER_DEPRECATED

E_ALL

E_STRICT出外的所有错误和警告信息。

错误控制

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中的错误显示的日志位置

    暂无相关资讯
当前页面的脚本发生错误 (安全篇)PHP 的错误机制详解