PHP文件包含错误

时间:2013-09-28 13:40:44

标签: php

我正在尝试创建一个与wordpress类似的 config.php 文件。我的代码确实创建了文件,但我一直面临文件包含问题。我在admin目录中的includes目录中有一个 defines.php 文件。但是,当我在 setup-config.php (在管理目录中)中包含文件 defines.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

include目录中的define.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\\');
?>

我的setup-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文件并重定向到setup-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,现在事情搞砸了。 非常感谢任何帮助。提前致谢。

1 个答案:

答案 0 :(得分:0)

首先检查是否已定义!但这是一种解决方法 最佳做法是永远不需要重新定义某些东西。

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