0

Facebookアプリケーションファイルをより適切なフォルダーに再編成しようとしましたが、Facebookにアプリケーションをロードしようとすると、次のエラーがスローされます。

Warning: require_once(../scripts/mysql_connect.php) [function.require-once]: failed to open stream: No such file or directory in C:\xampp\htdocs\<root folder>\Model\Database.php on line 3

Fatal error: require_once() [function.require]: Failed opening required '../scripts/mysql_connect.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\<root folder>\Model\Database.php on line 3 

2番目のエラーは、最初のエラーの失敗の結果だと思います。奇妙なことに、ブラウザでローカルホストのURLを介してアクセスしているときはプログラムが完全に正常に機能しますが、Facebookを介して実行すると、このエラーがスローされます。

ルートフォルダには、Database.phpファイルが保存されている「Model」フォルダとmysql_connect.phpファイルが保存されている「scripts」フォルダがあります。ブラウザのキャッシュをクリアしてプライベートブラウジングを使用しようとしましたが、それでもこのエラーがスローされます。

誰かが何が間違っている可能性があるか知っていますか?

編集:申し訳ありませんが、これはローカルホストでも機能していないようです!私が奇妙だと思うことの1つは、「ストリームを開くことができませんでした:そのようなファイルまたはディレクトリはありません」と表示され、database.phpパスが一覧表示されることです。なぜそこを見ているのですか?

require_once('../scripts/mysql_connect.php');Database.phpファイルの先頭にある行を使用してそれを含めます。

4

3 に答える 3

0

php.ini ファイルを編集する権限がありますか? 1 つの解決策は、インクルード パスを含む行を見つけることです (すでに C:\xampp\php\PEAR が含まれていることに気付くでしょう)。参照している "scripts" フォルダーへのフル パスを含めると、php コードを次のように変更できます。

require_once('mysql_connect.php');

このファイルはインクルード パスにあるため、PHP はこのファイルを見つけることができます。いくつかのインクルード パスの追加を開始する場合は、2 つ以上の異なるインクルード パスに mysql_connect.php という名前のファイルを含めないでください。エラーが発生する可能性が高いためです。お役に立てれば。それは間違いなく、よりクリーンなコードになります。

于 2012-08-16T11:59:04.353 に答える
0

サーバーには別の作業ディレクトリがあるようです。次のようなものは簡単な修正になるでしょう

dirname(__FILE__) . '/../scripts/mysql_connect.php'

于 2012-08-16T11:52:35.530 に答える
0

わかりましたこれは修正されましたが、なぜ問題が発生したのかはまだわかりません。ルート フォルダーには、スクリプトとモデルの 2 つのフォルダーがあります。Model フォルダーに database.php ファイルがあり、次のコード行が含まれています。

require_once('../scripts/mysql_connect.php');

何らかの理由でこれは機能しませんでしたが、行を次のように置き換えました。

require_once('/scripts/mysql_connect.php');

これでまた動き始めました!解決策を投稿すると思っただけです。他の方法が失敗した理由を誰かが知っていますか? 「..」は、フォルダー階層の1レベル上、つまりこの場合はルートフォルダーに移動し、ファイルへのパスをたどると思いました...

編集:これは、Facebook ではなく、ローカルホストに対してのみ解決したようです...

于 2012-08-16T12:14:16.747 に答える