gpt4 book ai didi

php - 包装器在服务器配置中被 allow_url_include=0 禁用

转载 作者:可可西里 更新时间:2023-11-01 13:48:15 25 4
gpt4 key购买 nike

我正在尝试使用 AJAX 调用检索页面内容。我在页面包装器中有一系列链接。当我单击一个链接时,它会加载一个 JavaScript 函数,该函数从 php 脚本中检索页面内容。在这种情况下,我在我的 localhost 上开发,但在生产中,脚本将与执行 AJAX 调用的文件位于相同的根文件夹和域中。我将响应用作 div 的内容。内容不是纯粹的 PHP,我的意思是虽然它是由 php 生成的,但它具有 HTML 元素,例如 div 和 span。它基本上是开始和结束 body 标签之间的东西。因此,我不确定是否可以只使用 json_encode

不是在 div 中加载内容,而是出现以下错误:

Warning: require_once() [function.require-once]: http:// wrapper is disabled in the server configuration by allow_url_include=0

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

我尝试使用 JQuery 加载函数:

$('#content').load('pages/test_page.php');

但结果完全相同。

这让我抓狂! TIA。

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

Title:  <?php echo $details['title']; ?>

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

最佳答案

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

对远程网页使用 include() 被认为是一种“不良做法”,可能会带来安全风险。例如,如果您使用 include($var); 并且一些攻击者设法将 $var 替换为 http://hacksite.tld 他/她可以“注入(inject)”代码...

关于php - 包装器在服务器配置中被 allow_url_include=0 禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6887338/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com