Formulário personalizado que armazena a entrada no banco de dados
-
-
Aquiestá um [exemplopara dados do usuário] (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 respostas
- votos
-
- 2012-12-26
Eu vou usaresta solução,mas as costuras sãomuitopersonalizadase podem ser umproblema comtemase atualizações?
I am going to use this solution, but it seams to be very customize and can that be a problem with themes and upgrades?
-
Amaneira comoeu vejo,você deve separar a lógica do arquivo demodelo.Seumétodo que lida com os dados dopost deve ser localizadoem funções.phpe inicializadopor um [Gancho deinicialização] (http://codex.wordpress.org/plugin_api/action_reference/init). Para lidar apenas com os dadosenviadospara ummodelo depáginaespecífico,vocêpode verificar se há um campo deentradanomeado (opcionalmente oculto) que éexclusivoparaessemodelo.Vocêtambémpode sebeneficiar de usar [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
-
URL realmente útilreally helpful url
- 0
- 2020-01-03
- Rohit
-
- 2013-07-30
Eutenho a soluçãoproblemática.Veja o código abaixo dissoissofaráisso.
Coloque o código dentro do seumodelopersonalizado recém-criado .
<?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 } ?>
-
Ohmeu Deus.nemmesmo uma únicaforma de validação.Oh my god. not even a single form of validation.
- 11
- 2015-05-10
- Jürgen Paul
-
Esta solução é suscetível ao ataque deinjeção SQL.Porfavor,valide aentrada.This solution is susceptible to SQL injection attack. Please validate the input.
- 3
- 2018-02-23
- Jon Winstanley
-
- 2012-12-25
minha sugestão:
use Formulário de contato 7 mais
Formulário de contato DB .Vocêpode "projetar" seuformulárionobackende colocandonofrontendpormeio de um shortcode simples. Aextensão doformulário de contato DBpermite colocar seus dadosnobanco de dadose ofertaspara você códigos de acessoparaexibi-lo (ou vocêpode consultar os dados diretamente dobanco de dados sepreferir)
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)
-
Eutentei o contato de contato 7e parece ótimo,maseutenho algumapergunta.Épossível adicionar um Incremental/Identificador como colunapara atabela.Eutambémpreciso definir os valores suspensos combaseem valores detabelas.Eununcatrabalha com um CMS antese não sei o quanto você devee precisapersonalizar vocêmesmo.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 vocêpode com o [postarmeuformulário CF7] (https://wordpress.org/plugins/post-my-contact-form-7/) Plugin deextensão,reorganiza atabela dopainel CF7,permitindo que você use STD [Funcionalidade WP] (http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types) Para adicionar uma colunapersonalizada àtabela.@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
-
Possoexibir os registros CF7 de um siteem outro site?Can I display the CF7 Records of One Site in Another Site .?
- 0
- 2017-05-29
- Developer
-
Esta ainda é uma solução válida.O CFDB suporta aindamaispluginsgerador deformulário.This is still a valid solution. CFDB supports even more form generator plugins.
- 0
- 2020-01-31
- mrmut
-
- 2012-12-25
Dêmaneiras diferentes. Para os dados da loja,como opções é atabela de opções, As opções API ,o lugar certo com umaentradae umamatriz comoelemento da loja. Maspara os dados da lojapara usá-lo comopostagense cadapedido doformulário émelhor salvartambém comopost. Mastambém aquipossibilidades diferentes. Vocêpodeeconomizarpara diferentestipos depostagem. Opadrão é 'POST'e também vocêpodeeconomizarem umtipo depostagempersonalizado. Use afunção
wp_insert_post()
Para salvarparatodos ostipos depostagem após Envie oformulário de usuários. Vocêencontra respostasmuitofinas aqui dessafunção,estetópicotambémnanatureza de www. Vocêtambémpode ver umpequenoexemploem Esta resposta 73653 ,inlcude anexosnoformulário.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.-
Usando o 'wp_insert_post ()' é quenão apenaspara comentários.E senãopor quefazer ébom usaresse?Eunão recebo aidéia ** de opções **.Umapesquisa rápidano Googlenãome ajude :(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
-
O `WP_INSERT_POST () 'não épara comentários,épara conteúdopost,crie umnovopost.Eu atualizominha resposta agora,foi do celular;Nãomuitofácilno WPSE.A outra resposta com a dicaparaplugins é amesma,oformulário de contato 7 ou outro criarnovaspostagens,mas vocêtem os requisitos de umplugin.Se você controlarisso,também afontee ter conhecimento suficiente sobre codificação,então é umpluginpersonalizadopara criarpostagens damelhormaneira.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
-
Obrigadopela sua ajuda até agora Bueltge.Minha compreensão de `WP_Insertpost` é que é umafunção de ajudapara rápidoe salvarinserir algoem umatabela debanco de dados.Seeutiver umatabela (nome=curso) comessas colunas (ID,CourseName,PARIPAMENTO,STARTDATE,enddate).Ondeeu defino otablename?Talvezeutenhaentendido agoleada.Exemplo de código [link] (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
-
Não,afunção crie dadosnastabelaspadrão do WordPress;Mínimoem `_posts`e se vocêtiver anexos oupós-meta dadostambémnas outrastabelas,existemem NABship com Post.Mas vocêpedepara salvar dados doformuláriono WordPresse eu acho,esta é amelhormaneira.Vocêtem semtrabalhar umainterface do usuário commuitas soluçõesparaeditare manutenção dositens doformulário.Se você vir o código domeu link de comportamento,verá a solução.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
-
Obrigado,acho quepreciso lermais ouencontrar algunstutoriaisparaentendermelhor a configuraçãoThanks, think i need to read some more or find some tutorials to understand the setup better
- 0
- 2012-12-28
- boje
-
Sim,comomeu linkna outra resposta ou um link da Web,como [este] (http://clarklab.com/posts/wordpress-front-end-post-form-using-wp_insert_post/).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
Vocêtambémpode usar oexcelenteformulário de contato 7pluginjuntamente com o postMinhaextensão deformulário CF7 plugin quepermitirá que você salve quaisquerformuláriospersonalizadospara umpost,incluindoimagensem anexosem destaquee selecione/seta de seleção/entradas de rádio comotaxonomias.
Apostagem do seuplugin deformulário CF7tem umafuncionalidade rica quepode ser alavancadaparapersonalizare ajustar aindamais amaneira como seusformulários devem ser salvos.Há um detalhado seção de documentação também.
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
Sua solução éboae podefuncionarmuitobem.Mas hápoucas limitações.Porexemplo:
1) Quetalprocurare classificarentradaspostadas através do seuformulário? 2) Quetalexportar os dadospreenchidosem seuformuláriopara Excel ou CSV ou PDF? 3) E se você quiserimprimir os dadosinseridos.
Tudo o quepode ser alcançado com oformulário de contato 7 + Salvar oformulário de contato 7plugins.
Ambos sãoplugins largamente usados: 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/
-
Porfavor,divulgue sua afiliaçãoe torne a respostaespecíficapara os requisitos dapergunta.Isso lêmais como anúncio do que a soluçãogenuína.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
-
Eu concordo,issoparece um anúncio,e eu sou dono doformulário de contato de salvar 7. Mas,a soluçãoe resposta se alinhaperfeitamente com aexigência dapergunta.Então,isso definitivamente vai ajudar apessoa quefez apergunta.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 } ?>
Eununca usei o WordPress antes,mastenhomuitaexperiência deprogramação.Minhapergunta é,como criarformas alfandegáriasno WordPress?
Eupreciso criar umformulárioem que um usuáriopreenche alguns campos deentradae,noenvio,os dados devem ser armazenadosnobanco de dados.Eunãopreciso denenhumanotificaçãonapoupança.
Eutambémpreciso consultar os dadose obter a saídaem umatabela HTML.
obrigado