从我的PHP收到一条错误消息

时间:2013-07-06 18:55:56

标签: php

我在我的网站上创建了一个页面,其中包含.php {在使用php中的速成课程后} 我收到此错误消息:

  

警告:include():http://在服务器中禁用了包装器   配置by allow_url_include = 0 in   第12行/home/u259153114/public_html/php_site/about.php警告:   include(http://musiccafefriends.neq3.com/php_site/header.php):失败   打开流:没有找到合适的包装   第12行/home/u259153114/public_html/php_site/about.php警告:   include():打开失败   'http://musiccafefriends.neq3.com/php_site/header.php'包含在内   (include_path ='。:/ usr / lib / php')in   第12行/home/u259153114/public_html/php_site/about.php警告:   include(/php_site/includes/nav.php):无法打开流:没有这样的   /home/u259153114/public_html/php_site/about.php中的文件或目录   第13行警告:include():打开失败   '/php_site/includes/nav.php'包含在内   (include_path ='。:/ usr / lib / php')in   第13行/home/u259153114/public_html/php_site/about.php

所以现在我做错了我喜欢网页设计和学习新东西但是现在强调了我现在大声笑我是可以看到它说这些文件或目录不存在但是相信我他们做所有目录和文件在我看来,由于某种原因neq3服务器阻止我的编码任何想法

4 个答案:

答案 0 :(得分:2)

这条消息非常自我解释:

include(): http:// wrapper is disabled in the server configuration by allow_url_include=0 

意味着您正在尝试包含远程文件(这是非常非常糟糕的主意),例如:

include('http://...../file.php');

但(通常出于安全原因)此服务器上禁用此功能。我建议复制远程文件并将其包含在本地。

答案 1 :(得分:1)

您正尝试在脚本中包含远程文件。您可以只复制外部文件的内容,将其放在您的服务器上的文件中,然后将其包含在内。而不是这样做。

答案 2 :(得分:1)

正如Orangepill所说,allow_url_include的默认设置是禁用它。

除非我弄错了,否则看起来你想要包含的文件实际上是在同一台服务器上(它们似乎都在一个名为php_site的目录中)。如果是这种情况,您可以更改您的包括:

include('http://musiccafefriends.neq3.com/php_site/header.php');

为:

include('header.php');

如果它们不是托管在同一台服务器上,最好的办法是将要包含的文件移动到要包含它的服务器上。

默认情况下,

allow_url_include被禁用以防止跨站点脚本,因为代码将在它包含在您的末尾之前在另一端进行评估,这意味着可以在您的服务器上注入和运行令人讨厌的东西。 / p>

至于你的第二个问题:

Failed opening '/php_site/includes/nav.php'

路径开头的斜杠/使其成为“绝对路径”,因此PHP正在查找文件系统根目录下的文件,而不是找到它。您正在寻找一个名为“nav.php”的文件,该文件位于当前名为“includes”的文件夹中。如果您将包含更改为include('includes/nav.php'),则应该有效。

答案 3 :(得分:0)

由于错误声明主机将'allow_url_include`设置为false(默认值)。这是为了避免包含跨站点脚本。

此处的选项是将allow_url_include指令更改为1或将资产复制到本地计算机并通过文件系统引用将其包含在内。