フォーラムへの返信

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • フォーラム: 使い方全般
    返信が含まれるトピック: htmlファイルによるページ作成
    トピック投稿者 yuya198979

    (@yuya198979)

    解決致しました。

    KUCKLU様の通り実施しましたらできました。

    ありがとうございます。

    フォーラム: 使い方全般
    返信が含まれるトピック: htmlファイルによるページ作成
    トピック投稿者 yuya198979

    (@yuya198979)

    nobita様

    ご回答ありがとうございます。

    試しにa.phpに、

    <?
    /**
    * Template Name: My File
    *
    */
    php get_header(); ?>

    と記述してURLから直接指定してみたのですが、やはり真っ白な画面でheader.phpを読み込んでくれませんでした。

    もしかしたら、勘違いされているのかもしれませんが、私はwordpressの管理画面からwebページを作成したいわけではありません。
    htmlファイルを自動的に作成して、それをブラウザから参照したいと考えております。
    その際に、現在使っているheader.php等を読み込みたいのです。

    どうぞ宜しくお願いいたします。

    フォーラム: 使い方全般
    返信が含まれるトピック: 入力フォームからのページ自動生成
    トピック投稿者 yuya198979

    (@yuya198979)

    kjmtsh様

    細部まで詳しくご教示下さり誠にありがとうございます。
    長文となりましたが、以下に返事をさせていただいております。

    1.form に何の制限もないため、何度でも、何でも送信できる。
    2.その気になれば、別のサーバからも投稿できる。
    3.$_POST で送られてきた内容を生のまま SQL 文に使っているので、自由に書き換えることができる。

    私自身、”3″に関してはSQLインジェクションの脅威を理解していたのですが、Webサーバ構築が初めてでセキュアなコードがどのようなものか今一つイメージができません。
    もしよろしければ、1~3の対策となるコードをどうすればよいかご教授いただけませんでしょうか。

    さて、それとは別に、なぜ locate_template() が動かないかですが、form から呼び出された db_input1.php は WordPress の情報を一切引き継がないので、WordPress の定数、変数、関数すべて使うことができません。これら、WordPress のオブジェクトの多くはグローバルな空間に存在しますが、db_input1.php は、それとは別のプロセス、空間で動作します。デバッグモードで試すと、undefined function と言われるはずです。

    wp-config.phpにdefine(‘WP_DEBUG’, true);を記載して、エラーメッセージを出力するようにしているのですが、”undefined function”と出力されません。デバッグモードはどのように設定すればよいのでしょうか。

    WordPress の機能を使いたいという場合は、db_input1.php の冒頭で、

    require_once(‘absolute-path-to/wp-config.php’);

    db_input1.phpの冒頭にこれを記述して実行したところ、フォーム入力後のページが白紙となり、データベースに追加もできなくなりました。

    単に、db_input1.php の中で、auto-upload.php を呼びたい場合は、同じディレクトリにあるなら、

    require_once(dirname(__FILE__) . ‘/auto-upload.php’);

    これもやってみたのですが、初期と同じくデータベースに追加はできるのですが、自動投稿はできません。

    以上です。大変お手数ですが、お返事いただければと思います。
    どうぞ宜しくお願い申し上げます。

    フォーラム: 使い方全般
    返信が含まれるトピック: 入力フォームからのページ自動生成
    トピック投稿者 yuya198979

    (@yuya198979)

    gblsm様

    はい、確認済です。
    私もlocate_templateが問題だと思うのですが、どのように変更すればよいのかわかりません。
    ちなみに、以下のようにfunction.phpからのショートコードで呼び出した場合は問題なく自動生成されております。

    function.php

    add_shortcode('test','test');
    function test(){
    	require_once locate_template('php/auto_upload.php');
    }

    フォーラム: 使い方全般
    返信が含まれるトピック: 入力フォームからのページ自動生成
    トピック投稿者 yuya198979

    (@yuya198979)

    gblsm様

    同様に、auto_upload.phpもfunction.php内では呼び出せるのですが、入力フォームから呼び出しているdb_input1.php内ではうまく動作しません。

    wp-config.phpにdefine(‘WP_DEBUG’, true);を記載して、エラーメッセージを出力するようにしているのですが、実行しても何も表示されずに自動投稿がされておりません。

    それから、そのサイトの説明では、WordPressのプラグインとして作成されているようですが、入力フォームや db_input1.php は自作プラグインなのですか?

    自作プラグインというものを十分に理解していないのですが、入力フォームや db_input1.php は自分で作成したコードです。function.phpにショートコードを書いて呼び出しております。

    以上です。どうぞ宜しくお願いいたします。

    フォーラム: 使い方全般
    返信が含まれるトピック: 入力フォームからのページ自動生成
    トピック投稿者 yuya198979

    (@yuya198979)

    gblsm様

    お返事ありがとうございます。

    “auto_upload.php”のソース記載が抜けておりました。
    http://www.necozine.com/wordpress/posts-from-php/
    ↑こちらのサイトを参考にauto_upload.phpでは、wp_insert_post関数を用いております。

    mysql_query 関数を用いている理由としては、db_input1.php内では、$wpdbが使えなかったためです。(function.php内では$wpdbが使えるのですが、db_input1.php内では$wpdbがNULLとなってしまいました。)

    同様に、auto_upload.phpもfunction.php内では呼び出せるのですが、入力フォームから呼び出しているdb_input1.php内ではうまく動作しません。

    以上です。どうぞ宜しくお願いいたします。

6件の返信を表示中 - 1 - 6件目 (全6件中)