2013-01-01 58 views
0

我很難讓PHP應用程序通過require_once語句進行處理。我的PHP代碼位於HTML5文檔的正文中。我正在嘗試在我的密碼散列代碼中包含PHpass框架。 PHP代碼開始的東西這樣的效果:PHP應用程序不能繼續進行require_once

<?php 
require_once("./includes/PasswordHash.php"); 
echo "test."; 
?> 

回聲聲明從來沒有運行,沒有任何迴音聲明下方運行,無論是。如果我註釋掉require語句,那麼echo語句運行良好。我沒有收到任何錯誤消息,我只收到一個空白文檔。

我搞砸了什麼?

+4

的確保錯誤檢查和顯示器上。 '的error_reporting(E_ALL); ini_set('display_errors','1');' – 2013-01-01 19:41:35

+0

將這兩行添加到腳本的頂部:error_reporting(E_ALL); ini_set('display_errors',TRUE);然後再次運行它並將輸出發回到這裏。 –

回答

1

您加載的文件不存在或者您沒有閱讀權限。

打開顯示錯誤信息:error_reporting(E_ALL);

+2

或者也可能存在解析錯誤。 –

+0

是的,你是對的。有很多的可能性,因此我寫了關於error_reporting。 – rzymek

+0

這是解決方案。這是一個許可故障。我假設權限可以,因爲我之前已經配置了它們,但是鑑於我已經下載了包含文件,只有這一個文件的權限被搞亂了。調整到644後,問題就解決了。然而,error_reporting(E_ALL)仍然不起作用。 – revickulous2001

1

無論您require_once失敗,你沒有看到輸出,或包含腳本無法恢復的失敗。您應該仍然能夠在Apache錯誤日誌中看到堆棧跟蹤,但是您應該始終在開發機器上將錯誤報告設置爲

BTW,當前目錄在PHP腳本中有點棘手。當你想引用一個文件路徑相對於到腳本require出現成,我建議是這樣

<?php 
// Use DIRECTORY_SEPARATOR instead of forward slash for OS independence 
require_once (dirname(__FILE__) . '/path/to/included.php'); 
// or you can replace dirname(__FILE__) with __DIR__ 

注意使用魔法不斷__FILE__

+0

我正在使用(dirname(__ FILE__)格式。我將其更改爲點符號以使我的帖子更簡單,因爲我試圖隔離問題的根源。感謝您的建議,儘管如此。:) – revickulous2001

+0

好吧,但是這個在這裏並沒有真正購買我們的東西。消息描述是唯一有用的東西,所以你shluld真的把錯誤報告打開:) – Raffaele