2012-04-24 55 views
0

我想在插件中使用全局$ wpdb將數據插入到我的表中。 從文檔聽起來像我只需要包括wp-blog-header.php 但是,當我嘗試這樣做時,我得到一個錯誤。 (包含路徑='。:/應用程序/ MAMP/IP地址)'失敗開放所需的'http:// localhost:8888/blog/wp-blog-header.php' bin/php/php5.3.6/lib/php')在/applications/MAMP/htdocs/blog/wp-content/plugins/pluginname/submit/pick.php on line 4MAMP包含錯誤wp-blog-header.php

我的插件名/提交/選擇。 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的輸出複製到地址欄並且它工作正常。

任何幫助,將不勝感激。

回答

1

你不包括通過URL的PHP​​文件。你將包括的是腳本的EXECUTED OUTPUT。由於它是一個全面的網址,因此您的內部require()和用瀏覽器訪問該網址的用戶之間沒有區別。所有你會得到的是腳本的輸出,這可能是空白/沒有。

包括通過URL,即使它只是本地請求到您自己的服務器,從安全漏洞方面打開一整罐蠕蟲。

任何你不能簡單地通過普通的本地文件請求包括它的原因,例如,

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

+1

'../../../../wp-blog-header.php'做了詭計, – 2012-04-24 02:51:56