Textarea verursacht white screen

  • Hallo, kurz vor ab: ich habe noch nie zuvor mit Wordpress gearbeitet und auch in PHP und HTML habe ich nicht viel Erfahrung.
    Meine Aufgabe in einem Projekt ist es ein Formular darzustellen, bei dem die Benutzer ihre Eingaben in Textfelder und Textareas speichern können. Ich darf dafür keine fertigen Plugins verwenden, sondern muss eins selber bauen... Die Darstellung der Textfelder funktioniert. Textarea verursacht aber einen white screen, sobald ich mein selbst geschriebenes Plugin installiere.
    Die Stelle mit dem Textarea habe ich auch mal alleine ausprobiert, also ohe die normalen textfelder, alleine funktioniert das und lässt sich darstellen. Aber so zusammen in der FOrm funtkioniert es nicht und ich bin ratlos wo der Fehler liegt.
    Vielen Dank schonmal für die Hilfe!

    Hier mein php code:


    [FONT=Arial]<?php
    function projectcharter_form($p_name, $p_manager, $p_ziel, $p_beteiligte)
    {
    echo '
    <style>
    div {
    margin-bottom:2px;
    }
    input {
    margin-bottom:4px;
    }
    </style>
    ';

    echo '
    <form action="' . $_SERVER['REQUEST_URI'] . '" method="post">
    <div>
    <label for="p_name">Projektname <strong>:</strong></label>
    <input type="text" name="p_name" value="' . ( isset( $_POST['p_name'] ) ? $p_name : null ). '">
    </div>

    <div>
    <label for="p_manager">Projektmanager:in <strong>:</strong></label>
    <input type="text" name="p_manager" value="' . ( isset( $_POST['p_manager'] ) ? $p_manager : null ). '">
    </div>

    <div>
    <label for="p_ziel">Projektziel <strong>:</strong></label>
    <input type="text" name="p_ziel" value="' . ( isset( $_POST['p_ziel'] ) ? $p_ziel : null ). '">
    </div>

    <div>
    <label for="p_beteiligte">Projektbeteiligte</label>
    <textarea name="p_beteiligte" id="p_beteiligte rows="4" cols="50"></textarea>
    </div>

    <input type="submit" name="submit" value="Speichern"/>
    </form>
    ';
    }

    add_shortcode('example_projectcharter','projectcharter_form');
    ?>[/FONT]

    • 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

  • Hinter

    Code
    id="p_beteiligte

    fehlt ein doppeltes Anführungszeichen.

    Wenn das nicht ist, wirf einen Blick ins Error-Log. Dort sollte der konkrete Fehler benannt werden.

    1. Ein Shortcode gibt nichts direkt über [FONT=Courier New]echo[/FONT] aus sondern den auszugebenden Inhalt am Ende mit [FONT=Courier New]return $content;[/FONT] o.ä. zurück, siehe ShortCode API Dokumentation.
    2. Die Anzahl und Art der Parameter des Callbacks [FONT=Courier New]projectcharter_form()[/FONT] ist falsch, siehe [FONT=Courier New]add_shortcode()[/FONT] Dokumentation
    3. Das Einfügen der [FONT=Courier New]$_POST[][/FONT] Werte in [FONT=Courier New]value=".."[/FONT] ist 3x falsch, 1. die einzufügenden Variablen sollten aus [FONT=Courier New]$_POST[][/FONT] gelesen werden, 2. es fehlt esc_attr(), 3. der Fallback sollte leerer String sein, nicht [FONT=Courier New]null[/FONT].
    4. Das [FONT=Courier New]action[/FONT] Attribut im [FONT=Courier New]form[/FONT] Tag lässt man leer oder weg, wenn die aktuelle Seite als Ziel gedacht ist.
    Code
    function projectcharter_form( $atts, $content = null ) {
        $content = '<form method="post">
    <input type="text" name="p_name" value="' . stripslashes_deep( esc_attr ( isset( $_POST['p_name'] ) ? $_POST['p_name'] : '' ) ) . '">
    <input type="submit" name="submit" value="Speichern" />
    </form>';
        return $content;
    }
    add_shortcode( 'example_projectcharter', 'projectcharter_form' );


    (2. geändert, 3. & 4. ergänzt, Code ergänzt)

    9 Mal editiert, zuletzt von b3317133 (16. Mai 2022 um 20:58)

Jetzt mitmachen!

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