0

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

我的 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,现在事情变得一团糟。 任何帮助将非常感激。提前致谢。

4

1 回答 1

0

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

defined('SS_ADMIN_BASEDIR') or define('SS_ADMIN_BASEDIR', dirname(dirname(__FILE__)).'\\');
于 2013-09-28T14:00:21.623 回答