我正在尝试使用插件中的全局$wpdb将数据插入到我的一个表中。从文档中看,我似乎只需要包含wp-blog-header.php,但是当我尝试这样做时,我得到了一个错误。
PHP致命错误:(include_path='.:/Applications/MAMP/bin/php/php5.3.6/lib/php') () function.require:在/Applications/MAMP/htdocs/blog/wp-content/plugins/pluginname/submit/pick.php的第4行打开所需的'http://localhost:8888/blog/wp-blog-header.php‘PHP失败
我的pluginname/submit/ick.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中插入了一个快速回显,然后copy将pick.php的输出粘贴到地址栏中,并且它起作用了。
任何帮助都将不胜感激。
发布于 2012-04-24 10:34:42
您不能通过urls包含php文件。您将包含的是脚本的执行输出。因为它是一个完整的url,所以内部的require()与使用浏览器点击该url之间没有区别。您将得到的只是脚本的输出,它可能为空或为空。
包括通过urls,即使它只是对您自己的服务器的本地请求,也会在安全漏洞方面打开一个完整的蠕虫罐头。
任何原因,你不能简单地包括它通过一个正常的本地文件请求,例如
require('blog/wp-blog-header.php');https://stackoverflow.com/questions/10291002
复制相似问题