2011-11-13 52 views
0

私はPHPプロジェクトで作業していますが、ファイルのインクルードに問題があります。PHPでファイルを見つけることができません。

私はmyapp/reports/index.phpにあるphpスクリプトを持っています。フォームが送信されると、myapp/reports/phpHander/submit.phpにある別のphpスクリプトへのajax投稿が実行されます。

Submit.phpには、電子メールの送信に使用されるPHPスクリプトが含まれている必要があります。これは、同じコードを何度も繰り返し使用することができるように、必要なときにタイプする必要がないようにするためです。このPHPスクリプトは、../../administrator/classes/send.phpにあります。

これまでのところ、send.phpスクリプトには、administrator/appConfig.phpにあるアプリケーション設定を取得するための別のファイルが含まれています。問題は、私がhttp://localhost/myapp/administrator/appConfig.phpという完全なWebアドレスを入力しても、このappConfig.phpが見つからないということです。

私は間違っています。私はこれを行うにはPHPのインクルード関数を使用して、他のすべてのために働いていますが、別の場所から別のスクリプトを含む問題があるようです。

ご協力いただきありがとうございます。

答えて

5

http://localhost/myapp/administrator/appConfig.phpはURLパスのみです。

あなたはとにかく最善の方法は、一定であなたのルートアプリケーションディレクトリ内のファイル "dirs.php" を作るですC:/wamp/www/myapp/administrator/appConfig.php(Windows)または/var/www/myapp/administrator/appConfig.php(Linux)の


のような絶対的なファイルパスが必要になります。

define('ROOT_DIR', dirname(__FILE__)); 

ここで、dirname(__FILE__)はアプリディレクトリの絶対パスになります。

この知識を使用すると、このような方法でファイルを含めることができます:/ index.phpを

myappに/レポートを:

require_once('../../dirs.php'); 
include(ROOT_DIR . '/administrator/appConfig.php'); 

myappに/レポート/ phpHander/submit.php:

require_once('../../../dirs.php'); 
include(ROOT_DIR . '/administrator/appConfig.php'); 
+0

ご協力いただきありがとうございます。 – Boardy

1

別のPHPスクリプトを組み込むと、すべてのパスが呼び出し元のスクリプトからの相対パスになります。したがって、あなたのスクリプトはmyapp/reports/phpHander/submit.phpにあり、../../administrator/classes/send.phpが含まれていて、同じディレクトリに別のスクリプトが含まれているようです。この場合、パス "../../administrator/appConfig.php"を使用する必要があります。あるいは、ファイルシステムのルートに相対的な絶対パスを使用することもできます。

+0

ニースの説明はこちら http://brian.chipsofttech.com/blogs/brian/post/Different-Path-Types.aspx#site – Smandoli

関連する問題