2012-04-13 87 views
2

我有这个标记:PHP错误,不显示

<!DOCTYPE html> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
    <title></title> 
</head> 
<body> 

    <?php 
     ini_set('display_errors', 1); 
     ini_set('log_errors', 1); 
     include_once('../API/session_management.php'); 
     //Checking session fixation: 
     $sess=new session_management(); 
     $sess->set_session_configurations(); 
     $sess->prevent_session_hijacking(); 
    ?> 
    sdfsd 
    <a href=""></form> 
    <form> 
     <input type="text" name="test"/> 
    </form> 
</body> 

的问题是,当我运行的代码,有一个错误。正在打印空白页。没有错误显示。为什么是这样的,我如何启用错误?

这是我之后,改变显示的错误就在PHP ini和重新启动Apache之前得到的输出:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <title></title> 
    </head> 
    <body> 

回答

8

你需要的是

ini_set('display_errors', 'On'); 
error_reporting(E_ALL); 

这两条线要更好地在您的开发环境的php.ini文件中设置它们。这将从您的项目中删除非生产代码并解决语法错误等问题,导致您的ini_set()error_reporting()调用不会被执行(感谢Corbin)。

另一个建议是,在任何HTML开始之前(在脚本的顶部)放置您的PHP代码。看起来你正在处理在将任何内容添加到输出缓冲区之前应该完成的会话。

+2

还值得注意的是,如果他的默认display_errors是关闭的,并且存在语法错误,则不会显示错误,因为对ini_set的调用永远不会发生。 – Corbin 2012-04-13 06:02:19

+0

什么都没有显示 – 2012-04-13 06:02:55

+0

我可以设置关闭吗?也许你也可以显示代码来完全隐藏错误。 – Michelle 2012-04-13 06:03:23