3

Profile.phpincludesProfile_Control.phpprofile_controlincludesを含むファイルがありますProfile_Model.php。ここまではすべて正常に動作します。

Upload.phpデータのアップロード元という名前の別のスクリプトがあります。この Upload.php にも含まれてProfile_Control.phpいます。ご存じのとおり、含まれています。なぜこのようなエラーが発生するのかわかりません。Profile.php が読み込まれると正常に動作しますが、データをアップロードすると、Profile_ControlProfile_Model.php

Warning: include(../Model/Profile_Model.php) [function.include]: failed to open stream: No such file or directory in C:\wamp\www\php\gagster\Control\Profile_Control.php on line 4

Upload.php で:

include_once("../../Control/Profile_Control.php");

Profile.php で:

include_once("../Control/Profile_Control.php");

Profile_Control.php で:

include_once("../Model/Profile_Model.php");

ドキュメントの構造:

 +-Control/
 |  |    
 |  +---- Profile_Control.php
 |
 +-Model/
 |  |
 |  +---- Profile_Model.php
 |
 +-Other/
    |
    +-- Upload/
           |
           +---- Upload.php
4

2 に答える 2

8

相対パス ( ) を使用する代わりに、現在地../を基準とした絶対パスを指定してみてはいかがでしょうか。$_SERVER['DOCUMENT_ROOT']私は通常、読みやすくするために定数を定義します -

define('_root',$_SERVER['DOCUMENT_ROOT']);

include(_root.'/Control/Profile_Control.php');

これで、インクルードする各ファイルに同じコード行を配置できますProfile_Control.php

user1280616は、ファイルを含める前にファイルの存在をテストすることに関しても有効な点を指摘しています。おそらく、それを実装することも検討する必要があります。

于 2012-09-16T07:58:07.533 に答える
1

phpfile_exists()関数を使用して、ファイルが含まれていることを確認することができます。

if (file_exists($filename)) {
    echo "The file $filename exists";
} else {
    echo "The file $filename does not exist";
}

を使用します。

defined('root') ? null : define('root', "url of your site "  ); 

よりも

include_once(root."rest of address");
于 2012-09-16T07:50:44.677 に答える