<?php
error_reporting(E_ALL); //sets logging filter to log all errors
//error_reporting(E_ALL & ~E_NOTICE); //sets logging filter to all except NOTICE, useful when your coding style is rather hacky (like mine)
ini_set('display_errors',1); //displays error output onpage
這應該是足夠了。
被警告說,如果發生錯誤,其產生的輸出頭將被髮送! 在這之後你不能設置Cookie,除非你使用輸出緩衝捕捉可能出現的錯誤,並防止頭部的發送中不需要的時刻。
編輯
如果你有,或想防止因已發送,你可以緩衝輸出和回聲在頁面末尾的輸出頭的問題。
代碼問題:
<?php
error_reporting(E_ALL); //sets logging filter to log all errors
ini_set('display_errors',1); //displays error output onpage
if($a/*is not set*/){ //echoes to page: undefined variable in /path/index.php at line linenumber
//code...
}
setcookie('testcookie','testvalue', time+3600); //error headers have already been sent so this won't work
代碼修復
<?php
ob_start();
error_reporting(E_ALL); //sets logging filter to log all errors
ini_set('display_errors',1); //displays error output onpage
if($a/*is not set*/){ //echoes to buffer: undefined variable in /path/index.php at line linenumber
//code...
}
setcookie('testcookie','testvalue', time+3600); //Works!
//Rest of page
echo ob_get_clean(); //this is the last line (add <?php if it's not already in a php tag)
來源
2015-11-19 23:34:36
x13
感謝,但我應該在哪裏使用此代碼? – ssd
這會影響到它下面的任何東西,我會推薦它在最上面。但是要注意發送的頭文件。 – x13
所以最好的方法是編輯php.ini? – ssd