Benutzerdefiniertes Formular, in dem Eingaben in der Datenbank gespeichert werden
-
-
Hieristein [Beispielfür Benutzerdaten] (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 Antworten
- Stimmen
-
- 2012-12-26
Ich werde diese Lösung verwenden,aber sie scheint sehrindividuell zu sein. Kann diesein Problemmit Themen und Upgrades sein?
I am going to use this solution, but it seams to be very customize and can that be a problem with themes and upgrades?
-
So wieiches sehe,sollten Sie die Logik von der Vorlagendateitrennen.Ihre Methode,die die POST-Daten verarbeitet,sollte sichin functions.phpbefinden und durcheinen [Initialisierungs-Hook] (http://codex.wordpress.org/Plugin_API/Action_Reference/init)initialisiert werden. Umnur die übermittelten Datenfüreine bestimmte Seitenvorlage zu verarbeiten,können Sienacheinem benannten (optional ausgeblendeten) Eingabefeld suchen,dasfür diese Vorlageeindeutigist.Sie können auch von [is_page_template ()]profitieren (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
-
wirklich hilfreiche URLreally helpful url
- 0
- 2020-01-03
- Rohit
-
- 2013-07-30
Ich habe die Problemlösung selbsterhalten.Siehe denfolgenden Code,um dies zutun.
Fügen Sie den Codein Ihreneuerstellte benutzerdefinierte Vorlage ein.
<?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 } ?>
-
Ach du lieber Gott.nichteinmaleine einzige Form der Validierung.Oh my god. not even a single form of validation.
- 11
- 2015-05-10
- Jürgen Paul
-
Diese Lösungist anfälligfür SQL-Injection-Angriffe.Bitte validieren Sie die Eingabe.This solution is susceptible to SQL injection attack. Please validate the input.
- 3
- 2018-02-23
- Jon Winstanley
-
- 2012-12-25
Mein Vorschlag:
Verwenden Sie Kontaktformular 7 plus
Kontaktformular DB .Sie können Ihr Formularim Backend "entwerfen" und übereinen einfachen Shortcodein das Frontendeinfügen. Mit der DB-Erweiterung "Kontaktformular" können Sie Ihre Datenin die Datenbankeinfügen und Ihnen Shortcodes zur Anzeige anbieten (oder Sie können die Daten direkt aus der Datenbank abfragen,wenn Sie diesbevorzugen)
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)
-
Ich habe Kontaktformular 7 ausprobiert undes siehtgut aus,aberich habeeinige Fragen.Istesmöglich,der Tabelleein Inkremental/einen Bezeichner als Spalte hinzuzufügen?Ichmuss auch die Dropdown-Wertebasierend auf Tabellenwertenfestlegen.Ich habenochnie miteinem CMSgearbeitet und weißnicht,wie viel Sie selbst anpassen sollten undmüssen.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 Sie könnenmit dem Erweiterungs-Plugin [Post My CF7 Form] (https://wordpress.org/plugins/post-my-contact-form-7/) die CF7-Dashboard-Tabelleneu organisieren,sodass Sie std [verwenden könnenWP-Funktionalität] (http://justintadlock.com/archives/2011/06/27/custom-columns-for-custom-post-types),um der Tabelleeine benutzerdefinierte Spalte hinzuzufügen.@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
-
Kannich die CF7-Datensätzeeiner Site aneiner anderen Site anzeigen?Can I display the CF7 Records of One Site in Another Site .?
- 0
- 2017-05-29
- Developer
-
Diesistimmernocheine gültige Lösung.CFDB unterstütztnochmehr Pluginsfür Formulargeneratoren.This is still a valid solution. CFDB supports even more form generator plugins.
- 0
- 2020-01-31
- mrmut
-
- 2012-12-25
Esgibt verschiedene Möglichkeiten. Für Geschäftsdatenist wie Optionen die Optionstabelle, die Options-API ,die richtige Stellemit einem Eintrag undein Array als Speicherelement. Aber damit Speicherdaten wie Beiträge verwendet werden undjede Anfrage aus dem Formularistesbesser,auch wie Beiträge zu speichern. Aber auch hier verschiedene Möglichkeiten. Sie könnenfür verschiedene Beitragstypen speichern. Der Standardwertist "Beitrag" und Sie könnenihn auchin einembenutzerdefinierten Beitragstyp speichern. Verwenden Sie die Funktion
wp_insert_post()
,umfür allenachfolgenden Beitragstypen zu speichern Formular von Benutzern senden. Hierfinden Sie sehrgute Antworten auf diese Funktion,dieses Thema und auchin der Wildnis von www. Sie können auchein kleines Beispielin Diese Antwort 73653 enthält Anhängeim Formular.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.-
Mit dem 'wp_insert_post ()'ist dasnichtnurfür Kommentare.Und wennnicht,warumistesgut,diesen zubenutzen?Ich habe keine Ahnung von der ** Optionstabelle **.Eine schnelle Suchebei Google hilftmirnicht :(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
-
Das `wp_insert_post ()`istnichtfür Kommentaregedacht,istfür Postinhaltegedacht,erstelleeinen neuen Post.Ich aktualisieremeine Antwortjetzt,war vom Handy;nicht wirklicheinfachfür WPSE.Die andere Antwortmit dem Hinweis auf Pluginsist dieselbe: Kontaktformular 7 oder andereerstellenneue Beiträge,aber Sie haben die Anforderungeneines Plugins.Wenn Sie dies kontrollieren,auch die Quelle undgenug Know-how über das Codieren,dannistein benutzerdefiniertes Plugin,um Beiträge ambesten zuerstellen.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
-
Vielen Dankfür Ihrebisherige Hilfe Bueltge.Mein Verständnis von `wp_insertpost`ist,dasseseine Hilfefunktion zum schnellen und sicheren Einfügen vonetwasin eine Datenbanktabelleist.Wennicheine Tabelle (Name=Kurs)mit dieser Spalte habe (ID,Kursname,Teilnehmer,Startdatum,Enddatum).Wo definiereich den Tabellennamen?Vielleicht habeiches völligfalsch verstanden.Codebeispiel [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
-
Nein,die Funktionerstellt Datenin den Standard-WordPress-Tabellen.Minimumin `_posts` und wenn Sie Anhänge oder Post-Metadaten auchin den anderen Tabellen haben,gibt eseine Nabershipmit Post.Aber Siebitten um das Speichern von Daten aus dem Formularin WordPress,undich denke,diesist derbeste Weg.Sie haben ohne Arbeiteine Benutzeroberflächemit vielen Lösungen zum Bearbeiten und Verwalten der Elemente aus dem Formular.Wenn Sie den Code vonmeinem Verhaltenslink sehen,sehen Sie die Lösung.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
-
Vielen Dank,ich denke,ichmussnochetwas lesen oder Tutorialsfinden,um das Setupbesser zu verstehenThanks, think i need to read some more or find some tutorials to understand the setup better
- 0
- 2012-12-28
- boje
-
Ja,wiemein Linkin der anderen Antwort oderein Link aus dem Internet,wie [this] (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
Sie können auch das hervorragende Contact Form 7-Plugin zusammenmit dem Post verwendenMein CF7-Formularerweiterungs-Plugin ,mit dem Siebenutzerdefinierte Formularein einem Beitrag speichern können,einschließlich Bilder als vorgestellte Anhänge,und/checkbox/Radio-Eingänge als Taxonomien auswählen können.
Das Post My CF7-Formular-Plugin verfügt übereine umfangreiche Funktionalität,diegenutzt werden kann,um die Art und Weise,wie Ihre Formularegespeichert werden sollen,weiter anzupassen und zu optimieren.Esgibt aucheinen detaillierten Dokumentationsabschnitt .
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
Ihre Lösungistgut undfunktioniertmöglicherweise sehrgut.Esgibt jedochnur wenige Einschränkungen.zB:
1) Wasistmit dem Suchen und Sortieren von Einträgen,die über Ihr Formular veröffentlicht werden? 2) Wie wäreesmit dem Exportieren derin Ihr Formular ausgefüllten Datennach Excel,CSV oder PDF? 3) Wasist,wenn Sie dieeingefügten Daten druckenmöchten?
Alles,wasmit Contact Form 7 + Plugins zum Speichern von Contact Form 7erreicht werden kann.
beide sind kostenlose,weit verbreitete Plugins: 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/
-
Bittegeben Sie Ihre Zugehörigkeitbekannt undgeben Sieeine Antwort,die auf die Anforderungen der Frage zugeschnittenist.Dies liest sicheher wie Werbung als wieeine echte Lösung.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
-
Ichbin damiteinverstanden,dies sieht aus wieeine Werbung undichbin Inhaber des Save Contact Form 7. Die Lösung und Antwort stimmenjedochperfektmit den Anforderungen der Frage überein.Dies wird definitiv der Person helfen,die die Fragegestellt hat.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 } ?>
Ich habe WordPressnochnie benutzt,habe aber viel Programmiererfahrung.Meine Frageist,wieman Zollformularein WordPresserstellt.
Ichmussein Formularerstellen,in demein Benutzereinige Eingabefelder ausfüllt undbeim Senden die Datenin der Datenbank speichern soll.Ichbenötige keine Benachrichtigung zum Speichern.
Ichmuss auch die Daten abfragen und die Ausgabein einer HTML-Tabelle abrufen.
Danke