3

我在 win7 上运行 XAMPP 以使用 PHP/MySQL/AJAX 测试相当简单的站点,并且遇到了无法正确引用文件的问题。

我知道那C:\xampp\htdocs是“等价于” http://localhost/,并且我在C:\xampp\htdocs\lorem_ipsum(即http://localhost/lorem_ipsum/)中有一个项目子目录。其中还有一些文件夹(一个用于 php 脚本,一个用于 css 样式表等)。

我在引用这些子目录中的文件时遇到问题。

例如,在 lorem_ipsum/index.php 我使用以下行:

require_once 'http://localhost/lorem_ipsum/php/login.php'

这会产生错误:

Warning: require_once(): http:// wrapper is disabled in the server configuration by allow_url_include=0 in C:\xampp\htdocs\lorem_ipsum\index.php on line 13

Warning: require_once(http://localhost/lorem_ipsum/php/login.php): failed to open stream: no suitable wrapper could be found in C:\xampp\htdocs\lorem_ipsum\index.php on line 13

Fatal error: require_once(): Failed opening required 'http://localhost/lorem_ipsum/php/login.php' (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs\lorem_ipsum\index.php on line 13

通过谷歌搜索,我发现这是某种“文件共享/安全”问题,但我完全不知道这意味着什么或如何解决它(我仍然是一个初学者)。

例如,当我使用以下 CSS 时:

background-image:url('http://localhost/lorem_ipsum/images/bg.png')

背景是白色的,而不是“bg.png”。如果我使用'./images/bg.png'.

我尝试了各种不同的方法来引用文件,但都没有奏效。我还尝试关闭任何防火墙,但也没有用。

我最终的问题是:为什么所有的问题都与文件引用有关?

次要问题:PHP 和 CSS 错误是否相关,还是我把它们都搞砸了?我怎样才能阻止这种情况发生?apache/php 中是否有需要更改的设置,或者我只是编码错误?

4

2 回答 2

3

在 PHP 中,您应该从指定的 Document_Root 引用文件(在您的情况下为 C:\xampp\htdocs)。所以试试

require_once "/lorem_ipsum/phplogin.php";

如果文件托管正确,css 中的 url应该可以工作。但您也可以尝试使用相对路径,例如:

background-image:url('/lorem_ipsum/images/bg.png');
于 2012-11-24T06:29:28.590 回答
0

给 require_once 命令定义变量,因为 HTTP:// 协议在 PHP ini 上的很多服务器上是不允许的,以减少一些冲突和麻烦。

<pre>
&lt;?
require_once(dirname(__FILE__) . "php/login.php")

//next script here..... 

?&gt;
</pre>

或者你可能想要 make include 命令:

<pre>
&lt;?
include "php/login.php";

//do something here..


?&gt;
</pre>

参考:http ://www.php.net/manual/en/function.require-once.php / http://www.php.net/manual/en/function.include.php

对于 css 是:

 <pre>
background-image:url('images/bg.png')
</pre>
于 2012-11-24T06:54:08.533 回答