0

フッターとサイドバーを表示するために PHP インクルードを使用して非常に単純な Web サイトを構築しました。これらの PHP インクルードは、コンピューター上で EasyPHP を使用して表示すると機能しますが、サイトをアップロードして表示すると、次のようになります。ページに表示されるエラー:

Warning: include() [function.include]: open_basedir restriction in effect.
File(/usr/local/apache/htdocs/includes/sidebar.php) is not within the allowed path(s):
(/home/:/usr/lib/php:/tmp) in /home/a5562725/public_html/index.php on line 26

これは、000webhost で無料でホストされているサイトです。

これは、「includes」フォルダー内にサイドバーを表示するために使用される、index.php のインクルードの例です。

    <?php include $_SERVER['DOCUMENT_ROOT'] . "/includes/sidebar.php"; ?> 

一部のページはより深いディレクトリに埋め込まれており、インクルードはデッドリンクになるため、通常のインクルードの代わりに DOCUMENT_ROOT を使用しています。

4

2 に答える 2

2

共有ホスティングになるので、webrootに設定されている可能性があると思います...

したがって、次を使用して含めるだけです。

<?php include "/includes/sidebar.php"; ?>

それを少し拡張するには... ホスティングプロバイダーは通常、セキュリティ上の理由から open_basedir を設定します (http://www.php.net/manual/en/ini.core.php#ini.open-basedir)。

于 2012-06-18T12:34:25.073 に答える
0

これは常に起こります。質問をするとすぐに解決策が見つかります。

はい、問題は共有ホスティングに関係していたようです。ホストを機能させるには、ホストのホーム ルートを指定する必要がありました。000webhost ユーザーの場合、これはコントロール パネルの右側にあります。

私のインクルードは次のようになります。

<?php include('/home/a********/public_html/includes/sidebar.php'); ?>

*s はホーム ルートです。

于 2012-06-18T12:45:16.827 に答える