2012-07-22 66 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