2017-12-04 27 views
0

プロジェクトのデフォルトパスのようなグローバル変数を定義する "config.php"を作成しようとしています。この定義された変数をincludeでどのように使用できますか?インクルードで定義(変数を定義する)の使用方法

私のconfig.php:

$path = $_SERVER['DOCUMENT_ROOT'] . "/docme/"; 

require_once "resources/scripts/pdo.php"; 

ini_set('display_errors', TRUE); 
date_default_timezone_set("Europe/Prague"); 

//Nastavení konstant webu 
define('DB_NAME', 'project'); 
define('DB_USER', 'root'); 
define('DB_PASSWORD', 'pswd'); 
define('DB_HOST', '127.0.0.1'); 
define('SITETITLE', 'DocMe!'); 
define('PATH', $path); 

そして今、私には、中にPATH変数を使用する必要があり、それは可能でもありますか?

<?php 
    require_once "config.php"; 
    include_once PATH."/index.php"; 
?> 

大丈夫申し訳ありませんが、私はそれが実際に別の場所に問題があることを認識していませんでした。 localhost上では正常に動作しています。ウェブサイト(ライブ)では動作しません。cuz $ path = $ _SERVER ['DOCUMENT_ROOT'] = "/"だけ返します。

+1

コードに問題があるようですか? –

+0

人々があなたを助けることができるようにコードの問題を明記してください –

+0

はい、それはlocalhostで動作していますが、実際のWebサイトで$ _SERVER ['DOCUMENT_ROOT']が動作しないのはなぜですか?それは "http://student.sps-prosek.cz/...."のようなものではなく "/"だけ私を返します。\t $ path = $ _SERVER ['HTTP_HOST' ']? –

答えて

1

はstudent.sps-prosek.cz/ /「好きではない何か 『』はい、それはローカルホストに取り組んでいますが、なぜそれがライブのウェブサイト上の$ _SERVER [ 『DOCUMENT_ROOT』]を働いていないのですか?それは私だけを返します」。 ... "; $ path = $ _SERVER ['HTTP_HOST' ']を使用する方が良いでしょうか?

あなたの問題を理解していますが、問題は、URLが変更されるサーバーに展開するときです。

私はディレクトリ毎回私を変更する必要がないように、私はこのロジックを使用していて、あなたがこれは動作するはず

<?php 
    require_once "config.php"; 
    include_once BASE_PATH ."/index.php"; 
?> 

を使用するコード内ので

<?php 

define('PROJECT_BASE_FOLDER' , substr($_SERVER['REQUEST_URI'], 0, 8) == '/sample/' ? '/sample/' : ''); 
//sample is the name of the folder. the 0 to 8 is how many char your project name has including the '/' 

define('PROJECT_FOLDER'   , substr($_SERVER['REQUEST_URI'], 0, 8) == '/sample/' ? '' : ''); 
define('HTTP'     , 'http://'); 
define('BASE_PATH'    , $_SERVER['DOCUMENT_ROOT'] . PROJECT_BASE_FOLDER . PROJECT_FOLDER); 

define('SITE_URL'    , HTTP . $_SERVER['SERVER_NAME'] . str_replace($_SERVER['DOCUMENT_ROOT'] . '/', '', BASE_PATH)); 
// or ':8080/' is the port you are using in your local machine 
define('SITE_URL'    , HTTP . $_SERVER['SERVER_NAME'] . ':8080/' . str_replace($_SERVER['DOCUMENT_ROOT'] . '/', '', BASE_PATH)); 

このコードを試してみてくださいサーバーに展開する必要があります。

+0

BASE_PATHは "/"を返し、SITE_URLは "http://student.sps "-prosek.cz/"プロジェクトは "http://student.sps-prosek.cz/~kocvaja14/projectFolder/" SITE_URLの後に文字列を追加できますか? –

+0

基本的にBASE_PATHは "student.sps- prosek.cz/~kocvaja14/projectFolder/ " 基本的にローカルマシンでは、BASE_PATHはhttp:// localhost:8080/ の後にあるので、BASE_PATHはあなたの/となりますプロジェクトフォルダ。 必要な場合は、サイトのURLに何かを追加することができます –

+0

ありがとう、ありがとう! –

1

はい、あなたはPATH/は定数がは/あなたのconfig.phpファイル

を含むが、これは何かのためにweiredされた任意のファイルで。」/インデックスindex.phpを

のinclude_onceパスを含める使用することができます.php ";

+0

はい実際には申し訳ありませんが、エラーは\t $ path = $ _SERVER [' DOCUMENT_ROOT ']にあります。 "http://student.sps-prosek.cz/..."ではなく "/"のみを返します。ローカルホストでのみ動作します –

関連する問題