一起草最新网址_日韩一区二区麻豆国产_91视频婷婷_日本一区二区视频在线_日韩激情一区二区三区_国产另类第一区_成人免费在线播放视频_亚洲永久精品ww.7491进入_久久这里有精品视频_久久精品一级片_日韩av在线网页_波多野结衣不卡视频

用PHP自定義錯(cuò)誤處理器處理出錯(cuò)信息_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:PHP網(wǎng)站開發(fā)過程的安全知識(shí)
1、古老的欺騙SQL語句 在默認(rèn)模式下,即使是你忘了把php.ini拷到/usr/local/lib/php.ini下,php還是打開magic_quotes_gpc=on。 這樣所有從GET/POST/Cookie來的變量的單引號(hào)(')、雙引號(hào)()、反斜杠backslash(\)以及空字元NUL (the null byte)都會(huì)被加上反斜杠

用PHP自定義錯(cuò)誤處理器處理出錯(cuò)信息,如果您是PHP老手,當(dāng)然知道當(dāng)PHP腳本出錯(cuò)時(shí)發(fā)生了什么事情。此時(shí)PHP解析器將在屏幕上給出錯(cuò)誤信息,如 Fatal error: Call to undefined function on line 19 --,因此程序在此處終止。這個(gè)信息會(huì)嚇到客戶,他可能立即打電話和你進(jìn)行咨詢。

幸運(yùn)的是,這里有解決辦法。PHP擁有內(nèi)置工具,可以讓開發(fā)人員捕捉腳本錯(cuò)誤然后將它們轉(zhuǎn)到自定義的錯(cuò)誤處理器。此時(shí)則可以對(duì)處理器進(jìn)行編程顯示更多關(guān)于錯(cuò)誤的詳細(xì)信息。還可以將錯(cuò)誤寫入文件或數(shù)據(jù)庫以采取補(bǔ)救措施。有時(shí)候還可以對(duì)處理器編寫程序忽略錯(cuò)誤消息。

本文中,我將闡述如何使用PHP的錯(cuò)誤處理API構(gòu)建用戶自定義的錯(cuò)誤處理器,并且說明如何以簡單而友好的方式顯示和管理腳本的錯(cuò)誤信息。

錯(cuò)誤類型和報(bào)告級(jí)別

我們從最基本的開始。PHP有三種最基本的錯(cuò)誤類型,從低級(jí)到高級(jí)分別為:注意、警告和錯(cuò)誤(或致命錯(cuò)誤)。通常情況下,注意和警告不會(huì)終止程序;但是致命錯(cuò)誤則是危險(xiǎn)故障(例如,調(diào)用一個(gè)沒有定義的函數(shù)或參考一個(gè)不存在的對(duì)象),將導(dǎo)致程序中斷。這些錯(cuò)誤有可能在啟動(dòng)、解析、編譯或運(yùn)行時(shí)發(fā)生。

關(guān)鍵字如E_NOTICE, E_ERROR等用于表明錯(cuò)誤的不同類型和等級(jí)。在PHP手冊(cè)上可以獲得它們的詳細(xì)信息列表。

腳本階段錯(cuò)誤顯示由error_reporting()函數(shù)進(jìn)行控制。這一函數(shù)針對(duì)不同的錯(cuò)誤等級(jí)設(shè)置不同的參數(shù)。表A給出了使用此函數(shù)報(bào)告警告和致命錯(cuò)誤的腳本程序。

表A

// display warnings and errors

error_reporting(E_WARNING | E_ERROR);

// this will generate a notice, which will never be displayed

echo $undefinedVar;

// this will generate a fatal error, which will be displayed

callUndefFunc();

?>

將表B中的代碼與上面的進(jìn)行比較發(fā)現(xiàn),Listing B中隱藏錯(cuò)誤信息甚至隱藏致命信息,使得錯(cuò)誤信息不會(huì)被顯示出來。

表B

// turn off error display

// no errors will be displayed

error_reporting(0);

// this will generate a notice

echo $undefinedVar;

// this will generate a fatal error

callUndefFunc();

?>

表C中的代碼將所有錯(cuò)誤信息甚至簡單的注意事項(xiàng)都顯示出來:

表C

// all errors will be displayed

error_reporting(E_ALL);

// this will generate a notice

echo $undefinedVar;

// this will generate a fatal error

callUndefFunc();

?>

如以上3個(gè)例子所示,error_reporting()函數(shù)在控制錯(cuò)誤發(fā)生時(shí),在屏幕上顯示內(nèi)容非常重要。這里的關(guān)鍵字是displayed,其表達(dá)的意思是錯(cuò)誤不被顯示而不是錯(cuò)誤沒有發(fā)生。因此,發(fā)生致命錯(cuò)誤時(shí)(例如不正確的函數(shù)調(diào)用),程序?qū)⒈唤K止;但是,此時(shí)沒有任何消息顯示給用戶。

下面的例子(表 D)說明了這種情況:

表D

// no errors will be displayed

error_reporting(0);

// start a task

echo "Starting task...";

// call an undefined function

// a fatal error occurs during task processing

callMe();

// end the task

echo "Successfully completed task...";

?>

在表D中,在調(diào)用echo()函數(shù)時(shí)發(fā)生了致命錯(cuò)誤,程序執(zhí)行時(shí)到這點(diǎn)被終止,但是卻沒有任何錯(cuò)誤消息給出,用戶不知道這種情況還以為程序在正確運(yùn)行。下面的結(jié)論是非常明顯的:不給出錯(cuò)誤報(bào)告非常危險(xiǎn),因?yàn)椴徽撨^程是否完成它常導(dǎo)致不正確的結(jié)論。

注意:調(diào)用不帶任何參數(shù)的error_reporting()將返回當(dāng)前的錯(cuò)誤報(bào)告等級(jí)。

自定義錯(cuò)誤處理器

很明顯,隱藏錯(cuò)誤報(bào)告是不正確的,你肯定想知道有什么其他辦法加以改進(jìn)。自定義錯(cuò)誤處理器就是一個(gè)很好的能取代PHP默認(rèn)錯(cuò)誤處理系統(tǒng)的解決方法。自定義錯(cuò)誤處理器可以以任何方式設(shè)置處理錯(cuò)誤信息,包括信息如何顯示。

PHP函數(shù)中,完成這一功能的是set_error_handler()函數(shù)。錯(cuò)誤發(fā)生時(shí),此函數(shù)被自動(dòng)調(diào)用,然后給出4個(gè)參數(shù):錯(cuò)誤代碼、錯(cuò)誤消息、發(fā)生錯(cuò)誤的腳本名稱和錯(cuò)誤出現(xiàn)的行,此函數(shù)對(duì)錯(cuò)誤管理負(fù)責(zé)。

表E給出一個(gè)簡單例子:

表E

// define custom handler

set_error_handler('myHandler');

// custom handler code

function myHandler($code, $msg, $file, $line) {

echo "Just so you know, something went wrong at line $line of your script $file. The system says that the error code was $code, and the reason for the error was: $msg. Sorry about this!";

}

// generate a notice

echo $undefVar;

?>

當(dāng)運(yùn)行此腳本的時(shí)候,會(huì)出現(xiàn)下面的信息:

Just so you know, something went wrong at line 11 of your /dev/error1.php. The system says that the error code was 8, and the reason for the error was: Undefined variable: undefVar. Sorry about this!

此時(shí),PHP的默認(rèn)錯(cuò)誤處理器被用戶定義的myHandler()函數(shù)所取代,$undefVar變量被激活,PHP通知未定義變量的信息,此信息在運(yùn)行時(shí)引擎產(chǎn)生,然后傳遞給myHandler()函數(shù),同時(shí)錯(cuò)誤發(fā)生的地址也傳遞給此函數(shù)。然后myHandler()函數(shù)輸出友好信息解釋錯(cuò)誤。

注意:錯(cuò)誤和致命錯(cuò)誤很重要,它們會(huì)繞過自定義錯(cuò)誤處理器,然后以PHP默認(rèn)的錯(cuò)誤處理機(jī)制進(jìn)行顯示。顯示這些信息可使用前面討論的標(biāo)準(zhǔn)error_reporting()函數(shù)進(jìn)行控制。

例1:動(dòng)態(tài)錯(cuò)誤頁面和e-mail警報(bào)

表F給出了另一個(gè)范例,當(dāng)發(fā)生錯(cuò)誤時(shí),將動(dòng)態(tài)產(chǎn)生HTML錯(cuò)誤頁面,并且通過e-mail向Web管理員進(jìn)行報(bào)告。

表F

// define custom handler

set_error_handler('myHandler');

// custom handler code

function myHandler($code, $msg, $file, $line, $context) {

// print error page

echo "";

echo "

Error!

";

echo "";

echo "An error occurred while processing your request. Please visit our home page and try again.";

echo "";

echo "";

// email error to admin

$body = "$msg at $file ($line), timed at " . date ("d-M-Y h:i:s", mktime());

$body .= "\n\n" . print_r($context, TRUE);

mail ("webmaster@domain.dom", "Web site error", $body);

// halt execution of script

die();

}

// generate a notice

echo $undefVar;

?>

這里,自定義的錯(cuò)誤處理器在遇到錯(cuò)誤時(shí)動(dòng)態(tài)產(chǎn)生HTML錯(cuò)誤頁面。此錯(cuò)誤信息也能被e-mail信息捕獲,然后通過PHP內(nèi)置的mail()函數(shù)發(fā)送給管理員。

這里出現(xiàn)了myHandler()函數(shù)的一個(gè)新參數(shù)$context。這是myHandler()函數(shù)的第五個(gè)參數(shù),是可選項(xiàng)。它包含了當(dāng)前變量狀態(tài)的快照。包括對(duì)管理員有用的上下文信息,有利于減少調(diào)試時(shí)間。

例2:自定義錯(cuò)誤日志

表G給出了另一個(gè)例子,這個(gè)例子說明自定義錯(cuò)誤處理器如何將詳細(xì)的錯(cuò)誤信息輸入到文件。

表G

// define custom handler

set_error_handler('myHandler');

// custom handler code

function myHandler($code, $msg, $file, $line) {

// print error page

echo "";

echo "

Error!

";

echo "";

echo "An error occurred while processing your request. Please visit our home page and try again.";

echo "";

echo "";

// log error to file, with context

$logData = date("d-M-Y h:i:s", mktime()) . ", $code, $msg, $line, $file\n";

file_put_contents("web.log", $logData, FILE_APPEND);

// halt execution of script

die();

}

// generate a warning

echo is_float();

?>

與前面的例子相似,它也產(chǎn)生一個(gè)錯(cuò)誤頁面并且將錯(cuò)誤數(shù)據(jù)輸入到文件,以利于管理員進(jìn)行查看。數(shù)據(jù)以CSV格式進(jìn)行存儲(chǔ),并且有簡單的數(shù)據(jù)分析和報(bào)告。請(qǐng)注意在本例和前面實(shí)例中,錯(cuò)誤處理代碼結(jié)束時(shí)調(diào)用die()函數(shù),以確保腳本不再運(yùn)行。

如上面的范例所示,自定義錯(cuò)誤處理器允許以友好的方式處理PHP腳本錯(cuò)誤。并且可以發(fā)揮自己的創(chuàng)造性,不過需要記住的是:任何靈活性的增加都伴隨著開銷和時(shí)間的增加。

分享:學(xué)習(xí)動(dòng)態(tài)網(wǎng)頁制作PHP技術(shù)的正則表達(dá)式
正則表達(dá)式難于書寫、難于閱讀、難于維護(hù),經(jīng)常錯(cuò)誤匹配意料不到的文本或者錯(cuò)過了有效的文本,這些問題都是由正則表達(dá)式的表現(xiàn)和能力引起的。每個(gè)元字符(metacharacter)的能力和細(xì)微差別組合在一起,使得代碼不借助于智力技巧就無法解釋。 許多包含一定特性

來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2009-03-02
相關(guān)PHP教程
日韩欧美在线看| 成人污污视频在线观看| 亚洲视频一二区| 久久99影院| 国产成人精品亚洲日本在线桃色| 亚洲午夜激情免费视频 | www.成年人视频| 少妇高潮一区二区三区99小说| 国产美女主播一区| 国产成人av在线影院| 国产欧美韩国高清| 国内精品国产成人国产三级| 久久久久久久免费| 亚洲综合免费观看高清完整版在线| 中文字幕av一区二区三区人妻少妇| 精品女同一区二区| 99热这里只有精品3| 欧洲久久久久久| 色哟哟一区二区在线观看| 久久久精品少妇| 亚洲人精品午夜在线观看| 男人天堂网在线视频| 正在播放亚洲| 欧美一区二区三区人| 中文字幕第315页| 日本一区二区三区免费观看 | 日韩在线视频二区| 久久久国产亚洲精品| 麻豆av福利av久久av| 欧美性高潮床叫视频| av鲁丝一区鲁丝二区鲁丝三区| 91精品国产91久久久久久一区二区 | 亚洲毛片在线免费观看| 老司机午夜精品视频| 国产又黄又猛的视频| 久久久精品999| 亚洲视频在线一区观看| 人妻一区二区视频| 免费中文日韩| 欧美日韩一区二区三区在线| 亚洲一区二区视频在线播放| www.成人三级视频| 欧美xxxxxxxxx| 国产乱码精品一区二区三区忘忧草| 视频一区免费观看| 精品国内片67194| 国产毛片在线视频| 亚洲国产欧美日韩在线| 成人免费在线视频网站| 日韩无一区二区| 久久久91精品国产一区二区精品 | 亚洲国产精久久久久久 | 色偷偷久久一区二区三区| 97公开免费视频| 九色综合日本| 亚洲巨乳在线观看| 北条麻妃69av| 亚洲精品www.| 日本aaa视频| tube国产麻豆| 亚洲精品久久久久久动漫器材一区 | 在线观看免费成人| 精品999在线播放| 国产成人精品在线| 狠狠干视频网站| 韩国一区二区在线播放| 麻豆疯狂做受xxxx高潮视频| 蜜芽一区二区三区| 91美女在线视频| 在线国产亚洲欧美| 97精品国产97久久久久久免费| 成人黄色大片在线免费观看| 国产精品jizz在线观看老狼| 亚洲色图14p| 久久精品国产理论片免费| 久久久999视频| 久久精品久久综合| 亚洲黄色免费网站| 精品久久中文字幕| 欧美成年人网站| 欧美国产视频一区| 26uuu成人网| 成人免费毛片嘿嘿连载视频| 一级女性全黄久久生活片免费| 亚洲欧美日韩在线高清直播| 国产精品久久久久秋霞鲁丝| 福利在线一区二区| 国产精品久久久久久久久久久久久久久久 | 精品国产一区a| 亚洲视频一区在线观看| 欧美在线观看一区| 国产免费亚洲高清| 久草免费资源站| 中文字幕在线日亚洲9| 亚洲黄色性网站| 国产精品入口夜色视频大尺度| 日韩中文字幕免费在线| 亚洲黄色在线免费观看| 日本韩国欧美一区二区三区| 91热精品视频| 国产大屁股喷水视频在线观看| 精品一二三四在线| 日本久久一区二区| 久久婷婷人人澡人人喊人人爽| 91插插插插插插| 久久日一线二线三线suv| 欧美大片免费观看在线观看网站推荐| 久章草在线视频| 男女性色大片免费观看一区二区| 亚洲午夜激情av| 97久久人人超碰caoprom欧美| 国产又大又粗又爽的毛片| 中文字幕精品综合| 国产一区二区在线播放| 欧美黑人猛猛猛| 国产精品无码永久免费888| 久久福利电影| 久久久久久91亚洲精品中文字幕| 亚洲三级电影全部在线观看高清| 日本中文字幕不卡免费| www.555国产精品免费| 国产精品久久久久久久久晋中 | 亚洲欧洲制服丝袜| 国产亚洲福利社区| 亚洲AV无码精品国产| 日韩成人性视频| 小毛片在线观看| 91亚洲永久精品| 亚洲va国产va天堂va久久| 九九热只有精品| 欧美精品在线视频| 熟妇女人妻丰满少妇中文字幕| 国产亚洲一区二区三区四区| 欧美日韩在线观看一区二区三区| 亚洲av色香蕉一区二区三区| 欧美激情视频给我| 久久免费视频99| 亚洲国产精品成人va在线观看| 能看的毛片网站| 婷婷六月综合亚洲| 50路60路老熟妇啪啪| 亚洲国产精品成人综合色在线婷婷| 国产成人欧美在线观看| 毛片毛片女人毛片毛片| 亚洲国产精品一| 亚洲乱亚洲乱妇无码| 亚洲av网址在线| 精品少妇一区二区三区在线播放| 无码成人精品区在线观看| 一区二区高清在线| 欧美日韩一区二区视频在线| 久久只有精品| 不卡一卡2卡3卡4卡精品在| 理论电影国产精品| 免费不卡亚洲欧美| 91亚洲精品乱码久久久久久蜜桃| 自拍视频一区二区三区| 99久久免费视频.com| 欧美精品一区在线| 久久电影国产免费久久电影| 日韩av电影免费在线观看| 99久久精品国产观看| www.好吊操| 综合欧美一区二区三区| wwwxxx黄色片| 欧美日韩国产精品专区 | 日韩无码精品一区二区三区| 国产精品高精视频免费| www.com操| 天天av天天翘天天综合网 | 国产伦精品一区二区免费| 欧美另类videos死尸| 一区二区国产精品精华液| 国内精品模特av私拍在线观看| 日韩一区二区高清视频| 亚洲va中文字幕| 天堂久久久久久| 久久天天躁狠狠躁夜夜躁2014| 黑人乱码一区二区三区av| 中文字幕精品—区二区日日骚| 亚洲愉拍自拍另类高清精品| 中文字幕国产精品| 日韩av片在线免费观看| 97精品视频在线| 不卡的av网站| 亚洲午夜激情影院| www亚洲精品| 国产原创一区二区三区| 人妻有码中文字幕| 在线不卡的av| 少妇av一区二区| 国产精品自拍视频在线| 色综合五月天导航| a亚洲天堂av| 中文字幕日韩三级片| 欧美另类69精品久久久久9999| 国产成人免费视频精品含羞草妖精 | 久久久久久久极品| 快播亚洲色图| 99精品在线播放| 日本中文不卡| 欧美大肚乱孕交hd孕妇| 噜噜噜久久,亚洲精品国产品| 亚洲女人毛片| 欧美一区二区在线播放| 日韩av一级电影| 日韩在线免费观看av| 国产精品乱码| 精品免费国产一区二区三区四区| 国产美女精品视频国产| 爽爽爽在线观看| 91精品在线国产| 亚洲国产日韩一区| 国产精品亚洲一区二区三区妖精| 白白色免费视频| 久久日韩精品| 亚洲欧美日韩图片| 中文字幕一区二区三区视频| 在线观看中文字幕网站| 亚洲男人天堂色| 久久福利视频网| 中文字幕日本不卡| www.污视频| 免费福利视频网站| 亚洲精品成人三区| 国模极品一区二区三区| 精品久久久久久久久中文字幕| 丝袜亚洲另类欧美综合| 亚洲国产精品视频在线| 国产一区二区三区在线观看视频| 美女av免费看| 狠狠色综合一区二区| 欧美精品在线第一页| 欧美一级黄色片| 一区二区三区四区在线免费观看| 国产精品无码在线播放| 不卡一区二区在线观看| 亚洲国产婷婷香蕉久久久久久99| 51色欧美片视频在线观看| 在线成人免费视频| 亚洲精品国产一区二区精华液| 天天干天天插天天操| 欧美福利在线视频| 日本少妇一区二区三区| 91成人在线观看喷潮教学| 91传媒视频免费| 最新国产精品亚洲| 欧美精品黑人性xxxx| 国产日韩综合av| 国产美女精品在线| 一卡二卡在线观看| 日本爱爱爱视频| 另类小说色综合| 少妇性饥渴无码a区免费| 日韩精品久久久| 国产精品高精视频免费| 国产午夜一区二区| 91麻豆精品国产自产在线| 一本大道久久a久久综合| 成人三级伦理片| 久久午夜视频| 精品久久久久久亚洲综合网站 | 久久久久久久久久久久久久久久久| 亚洲国产综合av| 日本999视频| 内射国产内射夫妻免费频道| 欧美一区二区三区精美影视 | 欧美福利视频一区二区| 国产毛片久久久久久久| 色欲人妻综合网| 中国特黄一级片| 亚洲AV无码国产成人久久| 级毛片内射视频| 色欲狠狠躁天天躁无码中文字幕| 中文字幕第10页| 调教驯服丰满美艳麻麻在线视频 | 亚洲欧美激情一区二区| 久久久久久久久免费| 成人黄色在线看| 久久蜜桃香蕉精品一区二区三区| 26uuu色噜噜精品一区二区| 久久蜜臀精品av| 成人免费视频在线观看| 91福利在线看| 欧美一级高清片在线观看| 欧美刺激午夜性久久久久久久| 8v天堂国产在线一区二区| 在线观看国产精品日韩av| 一区二区三区视频免费| 色阁综合伊人av| 国产精品裸体一区二区三区| 亚洲欧洲国产日韩精品| 国产欧美日韩小视频| 黄色一级一级片| wwwav国产| 日本成人中文字幕在线视频| 国产综合色视频| 久久毛片高清国产| 狠狠躁夜夜躁久久躁别揉| 精品伦理精品一区| 久久久久久久av| 国产一区二区免费电影| 国产免费又粗又猛又爽| 中文字幕求饶的少妇| 精品视频在线观看一区| 99在线观看视频| 性欧美极品xxxx欧美一区二区| 亚洲婷婷在线观看| 欧美 亚洲 另类 激情 另类| 国产在线播精品第三| 欧美日韩亚洲91| 日韩精品www| 国产欧美久久一区二区| 日本xxxxx18| 日本中文在线视频| 99久久精品国产一区色| 99久久精品国产导航| 欧美精品日韩综合在线| 欧美乱大交做爰xxxⅹ性3| 粉嫩av免费一区二区三区| 91视频这里只有精品| 91久久精品国产91性色69 | 1769国内精品视频在线播放| 欧美日韩一区二区在线免费观看| 国产性生活视频| 精品人妻一区二区三区三区四区 | 粉嫩aⅴ一区二区三区四区| 日韩一区二区三区观看| 超碰97在线资源| x88av在线| caoporn国产一区二区| 中文字幕日韩高清| 国产高清免费在线| 免费黄色av片| 色综合久久久久网| 99电影在线观看| 亚欧精品视频一区二区三区| 成人深夜福利app| 日韩精品亚洲一区| 国产精品麻豆网站| 日本中文字幕久久看| 波多野结衣中文字幕在线播放| 30一40一50老女人毛片| 国产精品一区二区久久久久| 日韩国产一区久久| 亚洲成人77777| 日韩成人在线播放| 在线观看日韩片| 日韩精品成人一区| 欧美丝袜一区二区| 午夜一区二区三区| 国产裸体无遮挡| 综合欧美国产视频二区| 日韩成人av免费| 欧美三级在线看| 欧美图片自拍偷拍| 久久久一区二区| 中文字幕日韩精品久久| 丁香天五香天堂综合| 日韩大陆毛片av| 精品乱码一区内射人妻无码| 91久久嫩草影院一区二区| 成人性色生活片| 中文字幕亚洲日本| 亚洲欧洲激情在线| 国产乱淫a∨片免费观看| 亚洲色图偷窥自拍| 免费在线观看av网址| 欧美综合久久久| 国产一区二区网| 一区二区三区不卡在线观看| 女同性恋一区二区| 99久久精品免费看国产免费软件| 国产精品.com| 国产精品影视在线观看| 日韩中文字幕在线免费观看| 免费黄频在线观看| 久久蜜桃av一区二区天堂| 樱桃视频在线观看一区| 久久精品国产久精国产一老狼| 成人免费视频入口| 亚洲国产中文字幕在线观看| 久久久精品视频在线| 欧美老女人性视频| 国产乱人乱偷精品视频| 国产69精品久久久久9999| 蜜桃视频久久一区免费观看入口| 国产成人久久久| 久久九九国产精品| 国产又粗又猛又爽视频| 久久精品久久精品亚洲人| 天天色棕合合合合合合合| 成人午夜一级二级三级| 亚洲久草在线视频| 久久亚洲AV无码| 亚洲欧洲国产精品| 好吊操这里只有精品| 久久精品国产精品亚洲| 日韩精品一区二区亚洲av观看| 欧美成人免费全部| 一二三四区在线| 国内成+人亚洲| 中文在线一区二区| 国产视频123区| 91超碰caoporn97人人| 国内免费精品视频| 国产欧美精品xxxx另类| 国产一区高清在线| 999香蕉视频| 欧美在线观看禁18|