包含文件时出现问题

时间:2010-04-22 01:48:05

标签: php

<?php

//this is intializer.php
defined('DS')?  null :define('DS',DIRECTORY_SEPARATOR);

defined('SITE_ROOT')? null :
        define('SITE_ROOT',DS.'C:',DS.'wamp',DS.'www',DS.'photo_gallery');

defined('LIB_PATH')?null:define('LIB_PATH',SITE_ROOT.DS.'includes');

require_once(LIB_PATH.DS.'datainfo.php');
require_once(LIB_PATH.DS.'function.php');
require_once(LIB_PATH.DS.'session.php');
require_once(LIB_PATH.DS.'database.php');
require_once(LIB_PATH.DS.'user.php');


//this is other file where i call php file

// ERROR Use of undefined constant LIB_PATH - assumed 'LIB_PATH' in     
//C:\wamp\www\photo_gallery\includes\database.php  on 

//Notice: Use of undefined constant DS - assumed 'DS' in   
//C:\wamp\www\photo_gallery\includes\database.php on 

include(LIB_PATH.DS."database.php")

?>

有关可能导致上述错误的原因的任何想法?提前感谢您的帮助。

4 个答案:

答案 0 :(得分:2)

这与您的问题没有直接关系,但

define('SITE_ROOT',DS.'C:',DS.'wamp',DS.'www',DS.'photo_gallery');

应该是

define('SITE_ROOT',DS.'C:'.DS.'wamp'.DS.'www'.DS.'photo_gallery');

答案 1 :(得分:2)

你需要这样做:

defined('SITE_ROOT')? null : define('SITE_ROOT','C:'.DS.'wamp'.DS.'www',DS.'photo_gallery');

在站点根目录开始之前,您不需要DIRECTORY_SEPARATOR

你可能会更好:

defined('SITE_ROOT')? null : define('SITE_ROOT', dirname(__FILE__));

只要 intializer.php 位于根目录

答案 2 :(得分:1)

您必须在database.php

中添加此行
require_once("../../includes/initialise.php");

并删除

require_once (LIB_PATH.DS."config.php");

因为常量LIB_PATHDS不是可访问的unles,您添加以下代码

require_once (LIB_PATH.DS."config.php"); 

答案 3 :(得分:1)

好的,所以我认为你要找的是实际的系统文件路径。为此,你可以回应

dirname( __FILE__ ); 

您可以在任何所需的文件中执行此操作,它将显示相对于您的文件的系统文件路径。对我来说就是这样的:

/home2/myusername/public_html/project_name/includes/config.php

所以如果你对“project_name”文件夹感兴趣,你应该有这样的东西:

defined("SITE_ROOT") ? null : define("SITE_ROOT", DS . "home2" . DS . "myusername" . DS . "public_html" . DS . "project_name" );

然后,如果您正在寻找将作为您的图书馆的“包含”文件夹,您应该具有以下内容:

defined("LIB_PATH")  ? null : define("LIB_PATH", SITE_ROOT . DS . "includes" );

希望这会有所帮助。我有完全相同的问题,这对我有用。

干杯, Mihai Popa