2015-11-19 34 views
0

我不得不提,這個問題以前有人問,有人回答「你仍然可以使用PHP文件中添加配置設置,並沒有發佈成公共場所(文件夾)「。但我不能肯定那是什麼意思,所以我問,如果我沒有獲得爲php.ini我可以在一個PHP文件中把這個代碼,幷包括其內的其他文件或有一個適當的方式做這如何啓用錯誤日誌,如果我沒有獲得爲php.ini

<?php 
ini_set("error_reporting",E_ALL); 
ini_set("log_error",1); 
ini_set("error_log","error.log"); 
?> 

回答

2
<?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) 
+1

感謝,但我應該在哪裏使用此代碼? – ssd

+0

這會影響到它下面的任何東西,我會推薦它在最上面。但是要注意發送的頭文件。 – x13

+0

所以最好的方法是編輯php.ini? – ssd

相關問題