yuya198979
フォーラムへの返信
-
フォーラム: 使い方全般
返信が含まれるトピック: htmlファイルによるページ作成解決致しました。
KUCKLU様の通り実施しましたらできました。
ありがとうございます。
フォーラム: 使い方全般
返信が含まれるトピック: htmlファイルによるページ作成nobita様
ご回答ありがとうございます。
試しにa.phpに、
<? /** * Template Name: My File * */ php get_header(); ?>
と記述してURLから直接指定してみたのですが、やはり真っ白な画面でheader.phpを読み込んでくれませんでした。
もしかしたら、勘違いされているのかもしれませんが、私はwordpressの管理画面からwebページを作成したいわけではありません。
htmlファイルを自動的に作成して、それをブラウザから参照したいと考えております。
その際に、現在使っているheader.php等を読み込みたいのです。どうぞ宜しくお願いいたします。
フォーラム: 使い方全般
返信が含まれるトピック: 入力フォームからのページ自動生成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’);
これもやってみたのですが、初期と同じくデータベースに追加はできるのですが、自動投稿はできません。
以上です。大変お手数ですが、お返事いただければと思います。
どうぞ宜しくお願い申し上げます。フォーラム: 使い方全般
返信が含まれるトピック: 入力フォームからのページ自動生成gblsm様
はい、確認済です。
私もlocate_templateが問題だと思うのですが、どのように変更すればよいのかわかりません。
ちなみに、以下のようにfunction.phpからのショートコードで呼び出した場合は問題なく自動生成されております。function.php
add_shortcode('test','test'); function test(){ require_once locate_template('php/auto_upload.php'); }
フォーラム: 使い方全般
返信が含まれるトピック: 入力フォームからのページ自動生成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にショートコードを書いて呼び出しております。
以上です。どうぞ宜しくお願いいたします。
フォーラム: 使い方全般
返信が含まれるトピック: 入力フォームからのページ自動生成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内ではうまく動作しません。
以上です。どうぞ宜しくお願いいたします。