0

wordpress と同様のconfig.phpファイルを作成しようとしています。私のコードはファイルを作成しますが、ファイルのインクルードに関する問題に直面しています。admin ディレクトリ内の includes ディレクトリにdefine.phpファイルがあります。しかし、ファイルdefine.phpsetup-config.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

インクルード ディレクトリにある 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 にアップグレードしたところ、問題が発生しました。 どんな助けでも大歓迎です。前もって感謝します。

4

1 に答える 1

0

定義されているかどうかを最初に確認してください!しかし、これは回避策です。
ベスト プラクティスは、何かを再定義する必要がないことです。

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