0

我正在尝试在插件中使用全局 $wpdb 将数据插入我的一个表中。从文档中听起来我只需要包含 wp-blog-header.php 但是当我尝试这样做时,我遇到了一个错误。

PHP致命错误:require()[function.require]:打开失败需要'http://localhost:8888/blog/wp-blog-header.php'(include_path='.:/Applications/MAMP/bin/php/第 4 行 /Applications/MAMP/htdocs/blog/wp-content/plugins/pluginname/submit/pick.php 中的 php5.3.6/lib/php')

我的 pluginname/submit/pick.php (由 AJAX 调用)具有以下代码

<?php
    $p = 'http://localhost:8888/blog/wp-blog-header.php';
    echo $p;
    require($p);
    echo 'hi';
?> 

如果我加载 pick.php,我会看到http://localhost:8888/blog/wp-blog-header.php就是这样。因此,正如错误日志所证实的那样,它必须在要求上失败。

路径是正确的,因为我在 wp-blog-header.php 中插入了一个快速回显,并将 pick.php 的输出复制粘贴到地址栏中并且它起作用了。

任何帮助,将不胜感激。

4

1 回答 1

1

您不通过 url 包含 php 文件。您将包括的是脚本的执行输出。由于它是一个成熟的 url,因此您的内部 require() 与使用浏览器点击该 url 的人之间没有区别。您将得到的只是脚本的输出,可能是空白/无。

包括通过 url,即使它只是对您自己的服务器的本地请求,也会在安全漏洞方面打开一大堆蠕虫。

您不能简单地通过正常的本地文件请求包含它的任何原因,例如

require('blog/wp-blog-header.php');

?

于 2012-04-24T02:34:42.190 回答