2013-09-28 153 views
0

我想創建一個config.php文件與wordpress類似。我的代碼確實創建了該文件,但是我一直面臨文件包含的問題。我有一個文件defines.php包含在管理目錄內的目錄。但是,當我包括文件defines.php設置-config.php文件(在admin目錄),我收到以下錯誤PHP文件包含錯誤

Notice: Constant SS_ADMIN_BASEDIR already defined in 
C:\xampp\htdocs\cmsproject\ab_admin\defines.php on line 2 

Notice: Constant SS_ADMIN_INCLUDES already defined in 
C:\xampp\htdocs\cmsproject\ab_admin\defines.php on line 3 

Notice: Constant SS_ADMIN_IMAGES already defined in 
C:\xampp\htdocs\cmsproject\ab_admin\defines.php on line 4 

Notice: Constant SS_ADMIN_CSS already defined in 
C:\xampp\htdocs\cmsproject\ab_admin\defines.php on line 5 

Notice: Constant SS_ADMIN_JAVASCRIPT already defined in 
C:\xampp\htdocs\cmsproject\ab_admin\defines.php on line 6 

在我defines.php文件包括目錄如下:

<?php 
    define('SS_ADMIN_BASEDIR',dirname(dirname(__FILE__)).'\\'); 
    define('SS_ADMIN_INCLUDES','includes\\'); 
    define('SS_ADMIN_IMAGES','images\\'); 
    define('SS_ADMIN_CSS','css\\'); 
    define('SS_ADMIN_JAVASCRIPT','javascript\\'); 
?> 

我的設置-config.php文件的一部分如下:

<?php 
    require_once('includes/defines.php'); 
    require_once(SS_ADMIN_BASEDIR . SS_ADMIN_INCLUDES . 'functions.php'); 

    define('SS_ROOT_DIR',dirname(dirname(__FILE__)).'/'); 
    //more code goes here, not related to the question 
?> 

我在袋鼠做什麼牛逼目錄(的index.php)是檢測config.php文件和重定向設置-config.php文件 index.php文件如下:

<?php 
    //First and foremost what we do is check if the config.php exists or not 
    $fileName = dirname(__FILE__).'/config.php'; 
    if(!file_exists($fileName) or is_dir($fileName)) 
    header('Location:ab_admin/setup_config.php'); 
    else 
    echo "Load the template"; 
?> 

到目前爲止,我知道顯示此錯誤,當一個文件包含在使用require或include的腳本中多次。但我在這裏使用了require_once,但仍然有問題。 xampp的版本會影響到這個嗎?我使用的是xampp 1.7.3,這段代碼工作正常,但我升級到xampp 1.8.3,現在事情搞糟了。 任何幫助將不勝感激。提前致謝。

+0

對於在非Windows服務器上託管也使用'/'而不是'\\'。 –

+0

正在使用/之前,但錯誤後,我用\\替換它。 – nurakantech

回答

0

首先檢查是否定義!但這是一種解決方法。
最好的做法是永遠不需要重新定義一些東西。

defined('SS_ADMIN_BASEDIR') or define('SS_ADMIN_BASEDIR', dirname(dirname(__FILE__)).'\\'); 
+0

謝謝你的工作,但你能告訴我它發生的原因嗎? – nurakantech

+0

抱歉沒有打破你的代碼。剛剛發佈了警報「已定義」的解決方案。 但它看起來像包含/需要多次相同的文件。 –