2014-12-13 193 views
0

所以,我有一個(可能)簡單的問題來解決這個問題,目前我正在勝利。PHP文件無法識別包括

我的佈局與主體註冊文件開始,在主目錄:

registration.php的

<?php 

// Include connection to database 
require "config/db.php"; 

// Include website language class 
require "classes/website_language.php"; 

// Include registration class 
require "classes/registration.php"; 

// Include the page 
include "views/registration.php"; 

我的問題是類/ registration.php的IS NOT包括配置/ DB .php或classes/website_language.php,儘管我在MAIN文件中包含了classes/registration.php之前的那些文件。由於config/db.php和classes/website_language.php被包含在classes/registration.php之前的主註冊文件中,因此classes/registration.php不應該能夠從這兩個包含的文件中提取數據嗎?

我通過在classes/registration.php文件中包含了config/db.php和classes/website_language.php來解決這個問題,但是如果可能的話,我希望這些包含在MAIN文件中。

+0

檢查,registration.php有任何錯誤。 – saru 2014-12-13 07:55:10

+0

請記住標記正確答案(並提供反饋意見),以幫助其他(或將會)出現相同問題的人員 – 2014-12-13 14:11:30

回答

0

試試這個:

require("config/db.php"); 
require("classes/website_language.php"); 
require("views/registration.php"); 
0

我認爲你的問題是,你沒有考慮到「包括/需要」是相對於文件執行,包括。

讓我們做出了榜樣

文件夾結構

root/index.php 
root/folder1/file1.php 
root/folder1/file2.php 

的問題

index.php 

include "folder1/file1.php"; 

file1.php 

include "file2.php"; 

「包含 」file2.php「;」將由index.php執行,因此index.php將在同一個文件夾(本例中爲root)中搜索名爲file2.php的文件。當然index.php不會找到這樣的文件。

SOLUTION

index.php 

include "folder1/file1.php"; 

file1.php 

include dirname(__FILE__) . "/file2.php"; 

因此,解決辦法是使用絕對路徑的工作 - 你可以混合使用目錄名(FILE),獲取包含該文件的目錄親戚和絕對路徑。