2014-12-03 130 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。