我正在尝试在插件中使用全局$ wpdb将数据插入到我的一个表中。 从文档来看,我只需要包含wp-blog-header.php 但是,当我尝试这样做时,我收到了错误。
PHP致命错误:require()[function.require]:无法打开所需的'http:// localhost:8888 / blog / wp-blog-header.php'(include_path ='。:/ Applications / MAMP / bin第4行的/Applications/MAMP/htdocs/blog/wp-content/plugins/pluginname/submit/pick.php中的/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就是这样。所以它必须在require上失败,因为错误日志确认了。
路径是正确的,因为我在wp-blog-header.php中插入了一个快速回显,并将pick.php的输出复制粘贴到地址栏中,然后就可以了。
任何帮助都将不胜感激。
答案 0 :(得分:1)
您不通过网址包含php文件。您将包括脚本的EXECUTED OUTPUT。由于它是一个完整的网址,因此您的内部require()与使用浏览器访问该网址的人之间没有区别。所有你得到的是脚本的输出,可能是空白/没有。
包括via urls,即使它只是对您自己的服务器的本地请求,也会在安全漏洞方面打开一大堆蠕虫。
您无法通过正常的本地文件请求简单地包含它,例如
require('blog/wp-blog-header.php');