Formular inkl. Datenbankmanipulation wpdb->insert

  • Hallo liebes Forum,

    in mir keimte die Idee ein ganz einfaches Lagersystem mit WP zu realisieren. $wpdb stellt ja alles zur Verfügung, was ich benötige - zumindest für meine Zwecke.
    Die Entwicklung findet lokal auf einem RaspberryPi mit dem OS dietpi und WP 5.9.1. Als PlugIn für WP nutze ich "Insert PHP Code Snippet", um schnell an die Shortcodes zu kommen und php einfach einbetten zu können.
    Ich weiß, die Variante ist nicht sicher, aber für die lokale Umgebung und den derzeitigen Entstehungsprozess reicht es ;-).

    Meine Coding-Kenntnisse sind ebenfalls etwas eingerostet, sodass ich auf ein Problem gestoßen bin. Der Code sieht folgendermaßen aus:

    Es geht hier rein darum, einen neuen Datensatz aus dem untenstehenden Formular anzulegen und in der Tabelle wp_test mit den Spalten "name" (varchar) , "barcode"(int), "inhalt"(varchar) abzuspeichern. Die vierte Spalte "id"(int A_I) wird als Primärschlüssel vergeben, um jedem Datensatz eine eindeutige Nummer zu geben.

    Per prepare() kann ich das ganze auch noch sicherer machen, soweit bin ich aber noch nicht :-).

    So das Problem, das sich mir gerade zeigt, ist dass ich den Shortcode nicht einbinden kann und ich nicht weiß woran es liegt. Ich befürchte, dass es an falscher Synthax liegt und/oder es ein Problem mit der Verbindung von Formular und php-Anweisung gibt.

    Bitte helft mir doch auf die Sprünge.

    Schon einmal lieben Dank für die Mühen. Beste Grüße :D

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Du hast in dem Code mehrere Syntaxfehler.

    a) Die PHP-Ausgabe wird zu spät beendet - erst nach dem HTML-Code. Sie muss aber vor dem HTML-Code enden.
    b) Das $data-Array ist syntaktisch falsch.

    Zusätzlich sicherst Du die Eingaben in keiner Form ab. Die $_POST-Werte musst Du in jedem Fall diesbezüglich beachten.

    Mit diesem (ungetesteten!) Code hier kommt es zumindest zu keinem Fehler in der Ausgabe und die Werte sind abgesichert:

  • Wieder einmal vielen Dank für die Hilfe threadi!
    Zu a): klingt logisch, da die php Funktion, ja das Formular prüfen soll.
    zu b): Die Synthx sieht wesentlich logischer aus. Danke! Ich werde das gleich mal einbetten und testen. Und wegen der $POST-Variablen habe ich mir bald gedacht, dass ich zu einfach denke. Logisch, sanitize_text_field bereinigt und prüft den Inhalt.

  • Ein kleiner Nachtrag: Der Code von Dir threadi, funktioniert! Nur eine kleine Ergänzung, da ich beim ersten Versuch, einen 404- Error bekam. Der 404 Error kommt zustande, da ich die Variable "name" genutzt habe, und WP damit intern ein Problem hat. Ich habe sie zu Versuchszecken in "name1" umbenannt, inkl. des Formularfeldes, und nun funktioniert alles.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!