2012-07-22 65 views
0

在客戶端的主機上工作。網站由DreamHost主持。 index.php文件功能齊全,但是從首頁鏈接到的任何頁面都顯示爲空白。我找不到在是可用的日誌任何事情,所以一些搜索打開了下面的代碼:在PHP中應用錯誤日誌記錄,頁面仍爲空

error_reporting(E_ALL); 
ini_set('display_errors', TRUE); 
ini_set('display_startup_errors', TRUE); 

我把那在所有適用的頁面的PHP代碼的頂部,裏面但可惜沒有錯誤顯示並且頁面仍然完全空白。我更像是一個安全人員而不是開發人員,所以任何人都可以指出我的方向是正確的?

編輯:也服務器php.ini文件也有display_errors = 1。

回答

1

檢查您的代碼中是否有@-operatordieexit。如果是的話,輸出一些字符串知道你的腳本結束或使用error_log -function:

error_log("Oh no, file: ".__FILE__." on line ".__LINE__, 1, "[email protected]"); 

包括以下錯誤處理代碼中的一個再次嘗試:

function exception_error_handler($errno, $errstr, $errfile, $errline) 
{ 
    if (error_reporting() === 0) 
    { 
    return; 
    } 

    throw new ErrorException($errstr, 0, $errno, $errfile, $errline); 
} 

set_error_handler("exception_error_handler"); 
+0

我應用了這兩個代碼片段,仍然有一個空白頁面。 – Stev0 2012-07-22 22:56:06

+0

也許如果我包含有問題的代碼,您可以指向正確的方向?我沒有寫出任何這樣的代碼,我最終只是試圖排除故障的可憐人。 – Stev0 2012-07-22 22:56:53

0

您可以嘗試在每個塊之前/之後添加error_log()函數(if/else,for/foreach或while,function或$ this - > [*])調用到index.php中。並繼續進入從index.php中調用的類文件php,以便找到系統失敗的位置。有時,php系統不會打印任何錯誤日誌,直到您打印出來(使用error_log()print_r()echo)出現問題。

編輯

你可以安裝PHP5-Xdebug的和/或通過使用命令行運行你的index.php:

php index.php 

這將是非常簡單的PHP發現誤差系統並在系統出現故障。

+0

我跳進一個控制檯並做了PHP的index.php和所有受影響的文件相同,1或兩個未定義的索引....會導致整個頁面空白? – Stev0 2012-07-23 01:26:54

+0

這是可能的。你可以添加一個關於這些索引的if條件:'if(!isset($ these [$ indexes]))$ these [$ indexes] = $ initialize_it_like_structure;'。和/或你沒有解決,你可以發佈你的輸出。 – 2012-07-23 05:12:31

+0

@ Stev0,我正在閱讀你的帖子。如果你使用'codeígniter',檢查應用程序/日誌或系統[s]/logs目錄的權限:你可以試試'777',運行'php index.php',讀取*/logs/log *文件,瀏覽器,然後使用所有者權限修改日誌目錄權限。 – 2012-07-23 05:31:08