通过allow_url_include = 0在服务器配置中禁用包装器

Ano*_*ous 5 javascript php ajax

我试图通过电话检索页面内容AJAX.我在页面包装器中有一系列链接.当我单击链接时,它会加载一个JavaScript函数,该函数从php脚本中检索页面内容.在这种情况下,我正在开发我的localhost,但在生产中,脚本将在与AJAX调用文件相同的根文件夹和域内.我使用响应作为a的内容div.内容不是纯粹的PHP,我的意思是,它是由php生成的,它有HTMLdivs和spans 这样的元素.它基本上是开始和结束身体标签之间的东西.因此,我不确定我可以使用json_encode.

而不是加载内容div,我得到以下错误:

警告:require_once()[function.require-once]:通过allow_url_include = 0在服务器配置中禁用http://包装器

在阅读之后,allow_url_include似乎默认情况下通常会禁用它.我假设此功能允许一些严重的站点攻击.是这样的吗?如果是这样,我如何从其他文件中检索内容?

我尝试使用JQuery加载功能:

$('#content').load('pages/test_page.php');
Run Code Online (Sandbox Code Playgroud)

但结果完全相同.

这让我疯了!TIA.

编辑: 我想我可能已经找到了问题; 正在检索内容的php文件AJAX正在使用require_once.它需要的文件位于同一个根文件夹中的同一台服务器上,但它是一个目录.但是,这会产生一个新问题:我正在获取内容,但并不完全.例如,在文件中我有这个:

Title:  <?php echo $details['title']; ?>
Run Code Online (Sandbox Code Playgroud)

我只得到第一个字母,这适用于php我的其他内容echo.

Mar*_*oij 9

allow_url_include只影响include()require(),您仍然可以使用PEAR HTTP_Request2模块或curl函数来获取网页.

使用include()远程网页被认为是一个"不好的做法",并可能带来安全风险.例如,如果您使用include($var);并且某些攻击者设法替换$ var,http://hacksite.tld他/她可以"注入"代码......