質問

ハイ。 私は本当に奇妙なサイトを持っています、そして今私に悩まされています。 これは単純化された構造

です
public_html
- adm
--- raport
------ raportpdf.php
--- class
------ Bonus
--------- Bonus_DAO.class.php 
------ config.php
--- raport.php
- index.php
.

そう。index.phpは巨大ローダーです。それは線を持っています:(しかし彼らが夢中を作っているとは思わない)

set_include_path('lib/DB' . PATH_SEPARATOR . get_include_path());
set_include_path('lib/PHPLOT' . PATH_SEPARATOR . get_include_path());
set_include_path('config' . PATH_SEPARATOR . get_include_path());
set_include_path('view' . PATH_SEPARATOR . get_include_path());
set_include_path('controller' . PATH_SEPARATOR . get_include_path());
set_include_path('model' . PATH_SEPARATOR . get_include_path());
.

内ボーナス_dao.class.phpは

のようなものです。
require_once('./adm/class/config.php');
.

raportpdf.phpはindex.phpを通じて呼び出されます - メールでエラーなしでそのコンテンツを送信します。 しかし、raport.phpにアクセスしたいときは、次のようなエラーがあります。

Warning: require_once(./adm/class/config.php) [function.require-once]: failed to open stream: No such file or directory in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php  on line 2

Fatal error: require_once() [function.require]: Failed opening required './adm/class/config.php' (include_path='.:/usr/local/lib/php') in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php on line 2
.

これを解決するにはどうすればいいですか?

役に立ちましたか?

解決

次のような行をこの構造に含まれているファイルに挿入します(これに含まれているファイルは、ルートディレクトリにあります。は、Config.phpのようなもの、または通常使用します。 init.php)

define("ROOT_DIR",dirname(__FILE__));
.

あなたがエラーを受けている場所(またはその問題のためにコード内の同義語のために - ()/ include())を受け取り、root_dirを追加します。 "/ path / to / file"前に "/ path / to / file"。これが何をしているのかは、ルートディレクトリへの絶対パスを与えることです、そして、あなたが探しているルート内のディレクトリを単に指定します。例のために、私のルートディレクトリは "/ home2 /例"です。さて、私が含めたファイルにこの行を挿入し、必要な行をこれに変更します。

require_once(ROOT_DIR."/adm/class/config.php");
.

上記の行は基本的にこれに変換されます(define()を使用したと仮定して、/ home2 /例)

require_once("/home2/example/adm/class/config.php");
.

基本的に、これは静的なパスを動的な要素に与える簡単な方法で、あなたが再びこの問題に遭遇しないように!

頑張って!
デニスM.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top