2014-12-03 112 views
1

我有一个简单的PHP编码错误的问题,我无法找到错误的确切位置,有没有办法如何调试PHP脚本?php脚本错误调试

<?php 
    $fnC = "./includes/dbConnect.php" ; 
    if(file_exists($fnC)) { 
     require_once($fnC); 
     echo "$fnC is found" ; 
    } 
    else 
    { 
     echo "file does not exist : $fnC" ; 
    } 
?> 
<?php 
    $fnF = "./includes/dbFunctions.php" ; 
    if(file_exists($fnF)) { 
     require_once($fnF); 
     echo "$fnF is found" ; 
    } 
    else { 
     echo "file does not exist : $fnF" ; 
    } 
?> 

<?php 
    foreach($_POST as $key => $i){ 
      print("$key=$i<br>"); 
    } 


echo "script finish"; 
?> 

任何线索哪里出错? 里面的2个文件包含/,得到了dbConnect.php的第一个回显(文件存在),然后什么也没有 ,脚本停止 谢谢。

+0

检查'error_log'。 – mudasobwa 2014-12-03 08:38:25

回答

0

检查在PHP错误使用PHP的错误报告:

error_reporting(-1); 
ini_set('display_errors', 'On'); 

你把这些代码在你的PHP代码的顶部。

这将打印出您的php代码中的任何错误。

+0

感谢您的及时答复,我现在要测试 – koul 2014-12-03 08:51:55

+0

它的工作原理,我直接找到了问题所在。 – koul 2014-12-03 08:53:09

+0

我很高兴它有帮助。 :) – user3806613 2014-12-03 08:54:33

0

有时候,你需要保持包含的顺序! 当您的文件被包含需要一些资源(如类定义,函数体等)时,应首先包含具有这些资源的文件。

但是,如果您在一个文件中编写所有内容,则这不是必需的。

如果你得到“未能打开流”虽然你确信你的的include_path是正确的,请检查您open_basedir设置。所以为了避免任何奇怪的问题和痛苦的调试,确保在系统中使用的所有路径在任何地方都有相同的情况,并且它们与文件系统的实际情况相对应。这包括在网络服务器config/php.ini中设置的路径,自动加载配置,运行时包含路径设置或其他任何地方。

这可能很简单,因为您包含的目录不在open_basedir的范围之内,它阻止了php通过访问根目录之外的文件(通常)来阻止php。