我正在尝试创建一个与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,现在事情搞砸了。 非常感谢任何帮助。提前致谢。
答案 0 :(得分:0)
首先检查是否已定义!但这是一种解决方法 最佳做法是永远不需要重新定义某些东西。
defined('SS_ADMIN_BASEDIR') or define('SS_ADMIN_BASEDIR', dirname(dirname(__FILE__)).'\\');