2017-03-20 13 views
1

を示すことを許可していません。問題のコードがあると思われる:PHP致命的なエラーは、私は同じエラーを取得し続けるサイトは

<?php 

// Get the document root 
$doc_root = $_SERVER['DOCUMENT_ROOT']; 

// Get the application path 
$uri = $_SERVER['REQUEST_URI']; 
$dirs = explode('/', $uri); 
$app_path = '/' . $dirs[1] . '/' . $dirs[2] . '/'; 

// Set the include path 
set_include_path($doc_root . $app_path); 
echo $doc_root . $app_path; 
echo "<br />"; 
$include_path = get_include_path(); 
echo $include_path; 

// Get the common code 
require_once ('utils/tags.php'); 
require_once ('model/database.php'); 

私はそれがインクルードパスとは何かを持っているかなり確信しているが、私はそれを把握することはできません。そこに誰かが私を助けることができますか?
はい、これは学校プロジェクト用ですが、これを機能させることは課題自体の一部ではありません。私はほぼ一日中仕事をしていて、本当に私の知恵の終わりです。私はそれがあなたのfinalprojectパスに呼び出してはないと思うよう

おかげ

答えて

1

あなたの環境では、鉱山に多少異なる場合があります。あなたのコードを実行すると、私は次のようになります

/var/www/html //$_SERVER['DOCUMENT_ROOT'] 
/test.php// // echo $app_path 
/var/www/html/test.php// // echo $include_path 

(ノート、私はLinuxマシン上でだ)をデバッグするとき、私はどこでもfinalprojectディレクトリが表示されないように正しいされていません。これはもちろん、あなたのコードが/var/www/html/finalproject/で実行されていることを前提としています。

設定ファイルやドキュメントルートに毎回含まれるファイルがある場合は、そこにドキュメントルート変数を設定することをお勧めします。 $_SERVER変数に依存しないシンプルな1つのライナーは、次のとおりです。

$documentRoot = dirname(__FILE__).'/'

今、私たちは出力に/var/www/html/finalproject/表示されています。これを定義として設定してください:

define('ROOT_DIR', dirname(__FILE__).'/'); 
// Get the common code 
require_once (ROOT_DIR . 'utils/tags.php'); 
require_once (ROOT_DIR . 'model/database.php); 

これは、状況をデバッグするのに役立ちます。

+0

ありがとう@Cumbo。これは 'require_once'関数のすべてに' ROOT_DIR'を追加しなければならないので、私が探していた完全な解決策ではありませんでしたが、十分な回避策です。私は助けに感謝します。 – Harlan

+1

@ハラン上記のソリューションを使用すると、インクルードパスを設定することができます。 'set_include_path(ROOT_DIR);'これは、含まれているパスを出力するときに '/ var/www/html/finalproject /'を与えます。 – Dave

関連する問題