成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專(zhuān)欄INFORMATION COLUMN

開(kāi)發(fā)模式與產(chǎn)品模式下的PHP報(bào)錯(cuò)處理

baiy / 1108人閱讀

摘要:當(dāng)程序開(kāi)發(fā)完成,成為正式產(chǎn)品時(shí),我們希望將沒(méi)有預(yù)測(cè)到的報(bào)錯(cuò)信息記錄到錯(cuò)誤日志中,而不是將這些報(bào)錯(cuò)信息展示給用戶,因?yàn)橛脩魳O有可能利用這些暴露出腳本路徑數(shù)據(jù)庫(kù)信息或其他的報(bào)錯(cuò)信息進(jìn)行一些破壞性的黑客行動(dòng)。

程序報(bào)錯(cuò)總是在所難免,盡管我們書(shū)寫(xiě)代碼時(shí)已經(jīng)格外小心。

在開(kāi)發(fā)php程序時(shí),我們希望遇到php報(bào)錯(cuò),可以第一時(shí)間展示給我們,以便于調(diào)試。當(dāng)程序開(kāi)發(fā)完成,成為正式產(chǎn)品時(shí),我們希望將沒(méi)有預(yù)測(cè)到的報(bào)錯(cuò)信息記錄到錯(cuò)誤日志中,而不是將這些報(bào)錯(cuò)信息展示給用戶,因?yàn)橛脩魳O有可能利用這些暴露出腳本路徑、數(shù)據(jù)庫(kù)信息或其他的報(bào)錯(cuò)信息進(jìn)行一些破壞性的黑客行動(dòng)。

PHP 的錯(cuò)誤處理

php腳本在執(zhí)行過(guò)程中遇到錯(cuò)誤將以報(bào)錯(cuò)的形式處理,有些錯(cuò)誤在報(bào)錯(cuò)之后會(huì)終止腳本繼續(xù)執(zhí)行,而有些不會(huì),具體請(qǐng)參閱手冊(cè)。

php的報(bào)錯(cuò)處理方式根據(jù)以下配置選項(xiàng)進(jìn)行,這些配置可以在代碼中聲明以設(shè)置,也可以在php.ini文件中設(shè)置。如果不需要經(jīng)常改動(dòng)這些配置,還是建議在php.ini文件中設(shè)置,以使你的代碼更清爽簡(jiǎn)潔。

# 是否打印錯(cuò)誤信息到瀏覽器/命令行界面
# 開(kāi)發(fā)模式下建議開(kāi)啟,產(chǎn)品模式下強(qiáng)烈建議關(guān)閉
ini_set("display_errors", "On");

# 是否記錄錯(cuò)誤信息到日志
# 開(kāi)發(fā)模式和產(chǎn)品模式下都建議開(kāi)啟
ini_set("log_errors", "On");

# 指定錯(cuò)誤信息日志文件,若開(kāi)啟了 log_errors 選項(xiàng),記得指定日志文件位置
# 要確保執(zhí)行 php 腳本的系統(tǒng)用戶擁有該文件的 write 權(quán)限,否則日志無(wú)法被寫(xiě)入
ini_set("error_log", "/usr/local/php/errors.log");

# 該選項(xiàng)用以設(shè)定錯(cuò)誤報(bào)告的等級(jí)
# 等同于 error_reporting(E_ALL) 
# 無(wú)論開(kāi)發(fā)模式還是產(chǎn)品模式下都建議開(kāi)到E_ALL(報(bào)告所有的錯(cuò)誤信息)
# 產(chǎn)品模式下也需要設(shè)置此選項(xiàng),因?yàn)殛P(guān)閉了 display_errors 并開(kāi)啟了 log_errors
# 所以瀏覽器/命令行界面不會(huì)因此暴露報(bào)錯(cuò)信息
ini_set("error_reporting", E_ALL);

除此之外,php 還給開(kāi)發(fā)者提供了在代碼中將自定義的錯(cuò)誤信息記錄到錯(cuò)誤日志文件的內(nèi)置函數(shù):

bool error_log ( string $message [, int $message_type = 0 [, string $destination [, string $extra_headers ]]] )

必選參數(shù)是 message ,調(diào)用此函數(shù)會(huì)將 message 寫(xiě)入 php.ini 中定義的 error_log 文件中。

用戶自定義的錯(cuò)誤處理

另外,用戶可以通過(guò)函數(shù):

mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] )

以自定義的方式來(lái)處理腳本運(yùn)行時(shí)出現(xiàn)的錯(cuò)誤,如果用戶注冊(cè)了 error_handler 并指定了 error_types ,那么當(dāng)發(fā)生這些 error_types 的錯(cuò)誤時(shí),將繞過(guò) php的標(biāo)準(zhǔn)錯(cuò)誤處理程序(也就是說(shuō)既不會(huì)輸出錯(cuò)誤信息,也不會(huì)記錄錯(cuò)誤信息日志),而是執(zhí)行 error_handler 中的處理程序。該函數(shù)的詳細(xì)用法請(qǐng)參閱手冊(cè),

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/28633.html

相關(guān)文章

  • Chap3:創(chuàng)建型設(shè)計(jì)模式————工廠方法設(shè)計(jì)模式(上)

    摘要:利用工廠方法模式,請(qǐng)求者發(fā)出請(qǐng)求,而不具體創(chuàng)建產(chǎn)品。正是因?yàn)檫@個(gè)原因,使用工廠方法模式可以簡(jiǎn)化復(fù)雜的創(chuàng)建過(guò)程,關(guān)鍵就在于它在維持一個(gè)公共接口。 創(chuàng)建型設(shè)計(jì)模式 包括以下五種: 抽象工廠 生成器 工廠方法 原型 單例 我們選擇工廠方法和原型模式作為將用PHP實(shí)現(xiàn)的創(chuàng)建型設(shè)計(jì)的例子工廠方法模式是這5個(gè)設(shè)計(jì)模式中唯一的一種類(lèi)設(shè)計(jì)模式原型模式屬于對(duì)象類(lèi)模式,可以使用PHP_clone方法實(shí)...

    A Loity 評(píng)論0 收藏0
  • vuethink安裝部署

    摘要:下載安裝下載,,下載好后可以看到目錄中有和,是腳手架搭建的前端模塊,里面是框架本地域名后端配置新建一個(gè)數(shù)據(jù)庫(kù),將下的導(dǎo)進(jìn)新建的數(shù)據(jù)庫(kù),然后配置下的配好后打開(kāi)瀏覽器訪問(wèn),如果看到接口的字樣就是成功了前端配置打開(kāi)將改成后臺(tái)地址配置完后在中運(yùn)行 下載安裝 下載vuethink,git clone https://github.com/honraytech/VueThink.git,下載好后可...

    wangbinke 評(píng)論0 收藏0
  • 全棧開(kāi)發(fā)自學(xué)路線

    摘要:前言這里筑夢(mèng)師是一名正在努力學(xué)習(xí)的開(kāi)發(fā)工程師目前致力于全棧方向的學(xué)習(xí)希望可以和大家一起交流技術(shù)共同進(jìn)步用簡(jiǎn)書(shū)記錄下自己的學(xué)習(xí)歷程個(gè)人學(xué)習(xí)方法分享本文目錄更新說(shuō)明目錄學(xué)習(xí)方法學(xué)習(xí)態(tài)度全棧開(kāi)發(fā)學(xué)習(xí)路線很長(zhǎng)知識(shí)拓展很長(zhǎng)在這里收取很多人的建議以后決 前言 這里筑夢(mèng)師,是一名正在努力學(xué)習(xí)的iOS開(kāi)發(fā)工程師,目前致力于全棧方向的學(xué)習(xí),希望可以和大家一起交流技術(shù),共同進(jìn)步,用簡(jiǎn)書(shū)記錄下自己的學(xué)習(xí)歷程...

    galaxy_robot 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<