0

プラグインでグローバル $wpdb を使用して、テーブルの 1 つにデータを挿入しようとしています。ドキュメントからは、wp-blog-header.php を含める必要があるように思えますが、そうしようとするとエラーが発生します。

PHP 致命的なエラー: require() [function.require]: 必要な 'http://localhost:8888/blog/wp-blog-header.php' を開けませんでした (include_path='.:/Applications/MAMP/bin/php/ php5.3.6/lib/php') /Applications/MAMP/htdocs/blog/wp-content/plugins/pluginname/submit/pick.php の 4 行目

私の 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 からの出力をアドレス バーにコピーして貼り付けたので、パスは正しいです。

どんな助けでも大歓迎です。

4

1 に答える 1

1

URL 経由で php ファイルを含めないでください。含めるのは、スクリプトの EXECUTED OUTPUT です。これは本格的な URL であるため、内部の require() と、誰かがブラウザーでその URL にアクセスすることに違いはありません。得られるのはスクリプトの出力だけで、おそらく空白または何もありません。

URL 経由で含めると、たとえそれが自分のサーバーへのローカル リクエストであっても、セキュリティ ホールという点でワームの缶全体が開かれます。

通常のローカルファイルリクエストを介して単純に含めることができない理由。

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

?

于 2012-04-24T02:34:42.190 に答える