4

URL からファイルを含めようとしていますが、次のエラーがスローされます。

Warning: include(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in /Applications/MAMP/htdocs/diningtime/testsite/salims/index1.php on line 58

Warning: include(http://localhost/diningtime/templates/100/index.php): failed to open stream: no suitable wrapper could be found in /Applications/MAMP/htdocs/diningtime/testsite/salims/index1.php on line 58

Warning: include(): Failed opening 'http://localhost/diningtime/templates/100/index.php' for inclusion (include_path='.:/Applications/MAMP/bin/php/php5.4.4/lib/php') in /Applications/MAMP/htdocs/diningtime/testsite/salims/index1.php on line 58
Test

とにかくこの周りにあるのだろうか?

私のPHPインクルードコードは

<?php include "$location/index.php"; ?>

これについてあなたの助けに感謝します。

4

2 に答える 2

21

パスを含めるときに完全なURLを使用しています。これにより、PHPはHTTPリクエストを実行してそのファイルをフェッチしようとします。これはあなたがこれを行う方法ではありません。それがPHPコードを出力しない限り...100/index.php、ファイル内のphpコードではなく、インクルード結果としてHTMLなどを取得します。覚えておいてください-あなたはURL経由でフェッチしています。これはHTTPリクエストであることを意味します。つまり、ウェブサーバーは単にソースコードを提供するのではなく、そのスクリプトを実行してその出力を配信します。

そのスクリプトに対するHTTPリクエストが、同じサーバー上の別のPHPスクリプトからのインクルード呼び出しであることをWebサーバーが判断する方法はありません。それは、あなたのソースコードを盗もうとしているロシアに隠れているハッカーからのそのスクリプトの要求と同じくらい簡単かもしれません。あなたはあなたのソースコードをこのように世界に見えるようにしたいですか?

ローカルファイルの場合、本格的なURLを使用しないでください。それはひどく非効率的であり、あなたが望むことをしません。なぜ単に持っていないのですか

include('/path/to/templates/100/index.php');

代わりに、HTTPステージが含まれていない、ローカルファイルのみのリクエストになりますか?

于 2012-11-07T20:22:33.690 に答える