入力をデータベースに保存するカスタムフォーム
-
-
これが[ユーザーデータの例](http://wordpress.stackexchange.com/questions/75723/get-user-input-from-a-form/75737#75737)です.Here is an [example for user data](http://wordpress.stackexchange.com/questions/75723/get-user-input-from-a-form/75737#75737).
- 1
- 2012-12-25
- fuxia
-
7 回答
- 投票
-
- 2012-12-26
このソリューションを使用しますが、非常にカスタマイズする必要があり、テーマやアップグレードで問題になる可能性がありますか?
I am going to use this solution, but it seams to be very customize and can that be a problem with themes and upgrades?
-
私の見方では、ロジックをテンプレートファイルから分離する必要があります.POSTデータを処理するメソッドはfunctions.phpにあり、[初期化フック](http://codex.wordpress.org/Plugin_API/Action_Reference/init)で初期化する必要があります. 特定のページテンプレートに対して送信されたデータのみを処理するために、そのテンプレートに固有の名前付き(オプションで非表示)の入力フィールドを確認できます.[is_page_template()](http://codex.wordpress.org/Function_Reference/is_page_template)を使用することもできます.The way I see it, you should separate the logic from the template file. Your method that handles the POST data should be located in functions.php and initialized by a [initialization hook](http://codex.wordpress.org/Plugin_API/Action_Reference/init). To only handle the submitted data for a specific page template, you could check for a named (optionally hidden) input field that's unique for that template. You could also benefit of using [is_page_template()](http://codex.wordpress.org/Function_Reference/is_page_template)
- 0
- 2014-07-11
- estrar
-
本当に役立つURLreally helpful url
- 0
- 2020-01-03
- Rohit
-
- 2013-07-30
私は自分で問題の解決策を得ました.以下のコードを参照してください.
新しく作成したカスタムテンプレート内にコードを配置します.
<?php if (!empty($_POST)) { global $wpdb; $table = wp_achord; $data = array( 'name' => $_POST['yourname'], 'chord' => $_POST['chord'] ); $format = array( '%s', '%s' ); $success=$wpdb->insert( $table, $data, $format ); if($success){ echo 'data has been save' ; } } else { ?> <form method="post"> <input type="text" name="yourname"> <textarea name="chord"></textarea> <input type="submit"> </form> <?php } ?>
I got the problem solution myself. See the code below this will do that.
Put the code inside your newly created custom template.
<?php if (!empty($_POST)) { global $wpdb; $table = wp_achord; $data = array( 'name' => $_POST['yourname'], 'chord' => $_POST['chord'] ); $format = array( '%s', '%s' ); $success=$wpdb->insert( $table, $data, $format ); if($success){ echo 'data has been save' ; } } else { ?> <form method="post"> <input type="text" name="yourname"> <textarea name="chord"></textarea> <input type="submit"> </form> <?php } ?>
-
何てことだ.検証の単一の形式でさえありません.Oh my god. not even a single form of validation.
- 11
- 2015-05-10
- Jürgen Paul
-
このソリューションは、SQLインジェクション攻撃の影響を受けやすくなっています.入力を検証してください.This solution is susceptible to SQL injection attack. Please validate the input.
- 3
- 2018-02-23
- Jon Winstanley
-
- 2012-12-25
私の提案:
お問い合わせフォーム7 と お問い合わせフォームDB .単純なショートコードを使用して、バックエンドでフォームを「設計」し、フロントエンドに配置することができます. Contact Form DB拡張機能を使用すると、データをデータベースに配置し、それを表示するためのショートコードを提供できます(または、必要に応じてデータベースから直接データをクエリできます)
My suggestion:
Use Contact Form 7 plus Contact Form DB. You can "design" your form in the backend and putting in the frontend via a simple shortcode.
The Contact Form DB extension let you put your data in the database and offers to you shortcodes to display it (or you can query the data directly from the database if you prefer)
-
Contact Form 7を試しましたが、見栄えがしますが、質問があります.テーブルに列としてインクリメンタル/識別子を追加することは可能ですか?また、テーブルの値に基づいてドロップダウン値を設定する必要があります.私はこれまでCMSを使用したことがなく、自分自身をカスタマイズする必要があるかどうかもわかりません.I have tried Contact Form 7 and it look great but I do have some question. Is it possible to add a incremental/identifier as column to the table. I also need to set the dropdown values based on a tables values. I have never works with a CMS before and don't know how much you should and need to customize your self.
- 0
- 2012-12-26
- boje
-
@boje [Post My CF7 Form](https://wordpress.org/plugins/post-my-contact-form-7/)拡張プラグインを使用すると、CF7ダッシュボードテーブルが再編成され、std [を使用できるようになります.WP機能](http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types)テーブルにカスタム列を追加します.@boje you can with the [Post My CF7 Form](https://wordpress.org/plugins/post-my-contact-form-7/) extension plugin, it reorganises the CF7 dashboard table, allowing you to use std [WP functionality](http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types) to add a custom column to the table.
- 0
- 2016-10-17
- Aurovrata
-
あるサイトのCF7レコードを別のサイトに表示できますか?Can I display the CF7 Records of One Site in Another Site .?
- 0
- 2017-05-29
- Developer
-
これはまだ有効な解決策です.CFDBは、さらに多くのフォームジェネレータプラグインをサポートしています.This is still a valid solution. CFDB supports even more form generator plugins.
- 0
- 2020-01-31
- mrmut
-
- 2012-12-25
さまざまな方法があります.ストアデータの場合、オプションのように、オプションテーブル、
オプションAPI 、エントリのある適切な場所、ストア要素としての配列.ただし、ストアデータを投稿のように使用し、フォームからの各リクエストを投稿のように保存することをお勧めします.しかし、ここでもさまざまな可能性があります.さまざまな投稿タイプ用に保存できます.デフォルトは「post」で、カスタム投稿タイプで保存することもできます.関数 wp_insert_post()
を使用して、以降のすべての投稿タイプを保存しますユーザーからフォームを送信します.この関数に対する非常に細かい答えがここにあります.このトピックはwwwの荒野でもあります. この回答73653 、フォームに添付ファイルを含めます.It give different ways. For store data, like options is the options table, the options API, the right place with a entry and a array as store element. But for store data to use it like posts and each request from the form is it better to save also like post. But also here different possibilities. You can save for different post types. The default is 'post' and also you can save in a custom post type. Use the function
wp_insert_post()
to save for all post type after send Form from users. You find very fine answers here to this function, this topic ans also in the wild of www. You can also see a small example in this answer 73653, inlcude attachments in the form.-
'wp_insert_post()'を使用することは、コメントだけではありません.そうでなければ、なぜそれを使用するのが良いのですか?**オプションテーブル**のアイデアがわかりません.グーグルでのクイック検索は私を助けません:(by using the 'wp_insert_post()' is that not only for comment. And if not why do is it good to use that one? I don't get the **options table** idea. A quick search on Google don't help me :(
- 0
- 2012-12-26
- boje
-
`wp_insert_post()`はコメント用ではなく、投稿コンテンツ用です.新しい投稿を作成してください.私は今私の答えを更新します、モバイルからでした.WPSEでは本当に簡単ではありません.プラグインのヒントを含む他の回答も同じです.ContactForm7またはその他の新しい投稿を作成しますが、プラグインの要件があります.これを制御し、ソースも制御し、コーディングに関する十分なノウハウを持っている場合は、投稿を最良の方法で作成するためのカスタムプラグインです.The `wp_insert_post()` is not for comments, is for post content, create an new post. I update my answer now, was from mobile; not realy easy on WPSE. The other answer with the hint to plugins is the same, Contact Form 7 or other create new posts, but you have the requirements of a plugin. If you will control this, also the source and have enough knowhow about coding, then is a custom plugin to create posts the best way.
- 0
- 2012-12-27
- bueltge
-
これまでのBueltgeにご協力いただきありがとうございます.`wp_insertpost`についての私の理解は、データベーステーブルに何かをすばやく保存して挿入するためのヘルプ関数であるということです.これらの列(id、coursename、paricipant、startdate、enddate)を持つテーブル(name=Course)がある場合.テーブル名はどこで定義しますか?多分私はそれが完全に間違っていることを理解しました.コード例[リンク](http://collabedit.com/b6vye)Thanks for your help so far Bueltge. My understanding of `wp_insertpost` is that it is a help-function for quick and save insert something into a database-table. If i have a table(name=Course) with these column(id, coursename, paricipant, startdate, enddate). Where do i define the tablename? Maybe I understood it comeplety wrong. Code example [link](http://collabedit.com/b6vye)
- 0
- 2012-12-28
- boje
-
いいえ、関数はデフォルトのワードプレステーブルにデータを作成します.`_posts`で最小であり、他のテーブルにも添付ファイルまたは投稿メタデータがある場合は、投稿との関係があります.しかし、あなたはワードプレスのフォームからデータを保存するように求めます、そして私はこれが最良の方法だと思います.フォームからアイテムを編集および保守するための多くのソリューションを備えたUIを使用する必要はありません.私の行動リンクからコードを見ると、解決策がわかります.No, the function create data in the default wordpress tables; minimum in `_posts` and if you have attachments or post meta data also in the other tables, there are in nabership with post. But you ask for save data from form in wordpress and I think, this is the best way. You have without work a UI with many solutions for edit and maintenance the items from form. If you see the code from my behaviour link, then you see the solution.
- 0
- 2012-12-28
- bueltge
-
おかげで、セットアップをよりよく理解するために、もう少し読むか、いくつかのチュートリアルを見つける必要があると思いますThanks, think i need to read some more or find some tutorials to understand the setup better
- 0
- 2012-12-28
- boje
-
はい、他の回答の私のリンクや[this](http://clarklab.com/posts/wordpress-front-end-post-form-using-wp_insert_post/)のようなWebからのリンクのように.Yes, like my link in the other answer or a link from web, like [this](http://clarklab.com/posts/wordpress-front-end-post-form-using-wp_insert_post/).
- 0
- 2012-12-28
- bueltge
-
- 2016-10-17
投稿と一緒に優れたContactForm7プラグインを使用することもできます.私のCF7フォーム拡張機能プラグイン.これを使用すると、注目の添付ファイルとしての画像や、分類法としての選択/チェックボックス/ラジオ入力など、カスタムフォームを投稿に保存できます.
Post My CF7 Formプラグインには、フォームの保存方法をさらにカスタマイズおよび微調整するために活用できる豊富な機能があります.詳細な
>ドキュメントセクションもあります. You could also use the excellent Contact Form 7 plugin along with the Post My CF7 Form extension plugin which will allow you to save any custom forms to a post, including images as featured attachments, and select/checkbox/radio inputs as taxonomies.
The Post My CF7 Form plugin has a rich functionality that can be leveraged to further customise and tweak the way your forms should be saved. There is a detailed documentation section too.
-
- 2016-05-20
あなたの解決策は良く、非常にうまくいくかもしれません.ただし、いくつかの制限があります.例:
1)フォームから投稿されたエントリの検索と並べ替えはどうですか? 2)フォームに入力されたデータをExcel、CSV、またはPDFにエクスポートするのはどうですか? 3)挿入したデータを印刷したい場合はどうすればよいですか.
Contact Form 7 + Save Contact Form7プラグインで実現できるすべてのこと.
どちらも無料で広く使用されているプラグインです: http://savecontactform7.com/ http://contactform7.com/
Your solution is good and may work very well. But, there are few limitations. eg:
1) What about searching and sorting entries which are posted through your form? 2) What about exporting the data filled into your form to Excel or CSV or PDF? 3) What if you want to print the inserted data.
All that can be achieved with Contact Form 7 + Save Contact Form 7 plugins.
both are free widely used plugins: http://savecontactform7.com/ http://contactform7.com/
-
所属を開示し、質問の要件に固有の回答をしてください.これは、本物の解決策というよりも広告のように読めます.Please disclose your affiliation and make answer specific to the requirements of the question. This reads more like advertisement than genuine solution.
- 0
- 2016-05-20
- Rarst
-
私は同意します.これは広告のように見えます.私はSaveContact Form 7の所有者です.しかし、解決策と回答は質問の要件と完全に一致しています.だから、これは間違いなく質問をした人を助けるでしょう.I agree, this looks like an advertisement, and I am an owner of the Save Contact Form 7. But, the solution and answer perfectly aligns with the requirement of the question. So, this is definitely going to help the person who asked the question.
- 0
- 2016-05-22
- Nimblechapps
-
- 2017-02-07
<?php /** Use these line of codes, its working more than 100% */ get_header();?> <?php if (!empty($_POST)) { global $wpdb; $table = wp_contact; $data = array( 'name' => $_POST['aname'], 'email' => $_POST['aemail'], 'subject' => $_POST['asubject'], 'msg' => $_POST['amsg'] ); $format = array( '%s', '%s' ); $success=$wpdb->insert( $table, $data, $format ); if($success){ echo 'data has been saved' ; } } else { ?> <form action="<?php echo get_option('siteurl'); ?>/form/" method="post"> <input type="text" name="aname"> <input type="text" name="aemail"> <input type="text" name="asubject"> <textarea type="text" name="amsg"></textarea> <input type="submit"> </form> <?php } ?>
<?php /** Use these line of codes, its working more than 100% */ get_header();?> <?php if (!empty($_POST)) { global $wpdb; $table = wp_contact; $data = array( 'name' => $_POST['aname'], 'email' => $_POST['aemail'], 'subject' => $_POST['asubject'], 'msg' => $_POST['amsg'] ); $format = array( '%s', '%s' ); $success=$wpdb->insert( $table, $data, $format ); if($success){ echo 'data has been saved' ; } } else { ?> <form action="<?php echo get_option('siteurl'); ?>/form/" method="post"> <input type="text" name="aname"> <input type="text" name="aemail"> <input type="text" name="asubject"> <textarea type="text" name="amsg"></textarea> <input type="submit"> </form> <?php } ?>
これまでWordPressを使用したことはありませんが、プログラミングの経験は豊富です.私の質問は、WordPressで税関フォームを作成する方法です.
ユーザーがいくつかの入力フィールドに入力し、送信時にデータをデータベースに保存するフォームを作成する必要があります.保存に関する通知は必要ありません.
データをクエリして、HTMLテーブルで出力を取得する必要もあります.
ありがとう