0

我使用 PHP Includes 构建了一个非常简单的网站来显示页脚和侧边栏,当我在计算机上并使用 EasyPHP 查看它们时,这些 PHP 包括工作,但是当我上传网站并查看它时,我得到以下信息页面显示错误:

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 上免费托管。

这是 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 回答