2013-02-01 43 views
-1

我想滾動我自己的項目,但我遇到了一些錯誤,我覺得有點古怪,我的IDE和xDebug沒有出現很多選項給像我這樣的新手。PHP錯誤使用未定義的常量包括 - 假設'包括'

下面的代碼有幾個問題,但使用未定義的常量包括 - 假設'includes'令人討厭我,我不知道什麼是錯的。

<?php 

//Debug Error Reporting Configuration 
error_reporting(E_ALL); 


/* 
    Do Not Change any of these items unless 
    you know what they do and you realy 
    have to change them 
*/ 

//Global Function to return includes path 
function includes($path, $location){ 
    return $_SERVER['DOCUMENT_ROOT']. "/" .$path. "/" .$location; 
} 

//Global Function to return single location path 
function location($path){ 
    return $_SERVER['DOCUMENT_ROOT']. "/" .$path; 
} 

//Global Functions Include 
require(includes(includes, 'functions.php')); 

//Messaging Array 
$messages=array(); 

//Database Configuration & Connection 
$dbhost="localhost"; 
$dbuser="root"; 
$dbpass="SaltWater"; 
$dbname="platform"; 

connectToDB(); 

//Session Variable Registration 
session_register("f_name"); 
session_register("user_id"); 
session_register("company_id"); 

//Smarty Template Engine Configuration 
define('SMARTY_DIR', includes(includes, smarty)); 
require(SMARTY_DIR . 'Smarty.class.php'); 

$smarty = new Smarty(); 
$smarty->setTemplateDir(location(templates)); 
$smarty->setCompileDir(location(cache)); 
$smarty->setCacheDir(location(cache)); 


function errorsys($type, $detail){ 

    $smarty->assign('type',$type); 
    $smarty->assign('detail',$detail); 
    $smarty->display('error.tpl'); 
} 

?> 

編輯: 有沒有,我還沒有發現尚未做出一個聰明的辦法做我不包括平時的演練中的文件夾下,在此情況下,被部署到不同的服務器更簡單的方法?

回答

0

是否包含定義爲某個常量?也許你的意思

require(includes(includes, 'functions.php')); //if constant includes is defined 

或者

require(includes($includes, 'functions.php')); //if path is stored in $includes 

或者你的意思是

require(includes('includes', 'functions.php')); //if path is 'includes/' 
+0

我不這麼認爲,只能作爲應用程序中的文件夾 –

+0

好的,然後使用我答案中的最後一行。你需要在引號 –

+0

的引號中加上'included',這對於第一個錯誤是有效的,我試圖去調整最後剩下的但是它不起作用 define('SMARTY_DIR',includes('includes',smarty)); –

1
require(includes('includes', 'functions.php')); 

你需要確保你傳遞到您的包括功能的路徑是一個字符串。如果沒有引號,PHP會認爲你傳遞了一個從未聲明過的常量。該代碼仍然可以工作,因爲PHP會假定你的意思是一個字符串,但它會發出警告。