Weitere Informationen und den Download findest du auf der offiziellen Anlaufstelle de.wordpress.org
Ergebnis 1 bis 7 von 7
  1. #1
    PostRank: 3
    Registriert seit
    04.01.2017
    Beiträge
    122

    wp_nonce_field ist nicht brauchbar, oder sehe ich das falsch

    Hallo mal wieder so eine WP super Funktion, die nicht brauchbar ist.

    Und zwar habe ich mehrere Formulare und möchte eben die WP Funktion "wp_nonce_field" benützen. Doch diese ist einfach nicht gut. Denn Sie nimmt denn Namen und gibt dem Feld auch eine "id" aus dessen Namen, was natürlich nun zu einem invaliden HTML führt.

    Hier die Funktion: Keine Chance die id wegzulassen.
    https://developer.wordpress.org/refe...p_nonce_field/

    verkürztes Beispiel aus meinem View file:
    PHP-Code:
    <?php foreach($theme['config_files'] as $configFileKey => $configFile) { ?>
        <div class="">
            <form method="post">
                <?= wp_nonce_field('create-config-file''create-config-file'falsefalse); ?>
                <input type="hidden" name="my_action" value="create-config-file">
                <input type="hidden" name="config_file_name" value="<?= $configFileKey?>">
                <input class="button button-primary" name="create-name" value="create" type="submit">
            </form>
        </div>
    <?php ?>

    übersehe ich denn da was? oder seht ihr das gleiche Problem an dieser Funktion? Besten Dank im voraus.


  2. #2
    PostRank: 9 Avatar von b3317133
    Registriert seit
    21.11.2014
    Beiträge
    1.260
    Welches "invalide HTML" genau wird denn erzeugt bzw. von welchem HTML-Validator als solches bezeichnet? Ein Link zum Formular wäre hilfreich.

  3. #3
    PostRank: 3
    Registriert seit
    04.01.2017
    Beiträge
    122
    Eine id darf ja nur einmal vorkommen. Deshalb kommt es zu einem Fehler: Dublicate ID "name_of_id".

    Denn es wird ja mehrmals ausgegeben:
    Code:
    <input id="create-config-file" name="create-config-file" value="417ce7780f" type="hidden">
    Aber egal, muss ich eben die wp_create_nonce() Funktion nehmen.

    Ich will ja nicht nur rummekern, aber ich sehe lauter solche Sachen, die einfach nur unnötig Zeit kosten.

    Z. b. auch laut Doku hier:
    https://codex.wordpress.org/Function...wp_nonce_field

    PHP-Code:
    <?php

    if ( 
        ! isset( 
    $_POST['name_of_nonce_field'] ) 
        || ! 
    wp_verify_nonce$_POST['name_of_nonce_field'], 'name_of_my_action' 
    ) {

       print 
    'Sorry, your nonce did not verify.';
       exit;

    } else {

       
    // process form data
    }
    Und nur der Anfang der Funktion:
    PHP-Code:
    function wp_verify_nonce$nonce$action = -) {    $nonce = (string) $nonce
    Was wäre denn wenn der
    $_POST['name_of_nonce_field']

    ein Array ist. Führt natürlich zu einem Error oder Warnung. Aber egal.

  4. #4
    PostRank: 9 Avatar von b3317133
    Registriert seit
    21.11.2014
    Beiträge
    1.260
    Warum wird das mehrfach ausgegeben?

    Jedes Formular bekommt normalerweise seine eigene Nonce. Beispiele im Codex, dort wird jeweils die entspr. ID angehängt.

    Ein Error oder eine Warnung von PHP wird im laufenden Live-Betrieb bei entspr. Konfiguration von WP_DEBUG nicht ausgegeben.
    Geändert von b3317133 (10.01.2017 um 17:19 Uhr) Grund: Hinweis zu WP_DEBUG ergänzt

  5. #5
    PostRank: 3
    Registriert seit
    04.01.2017
    Beiträge
    122
    Hey danke nochmals.

    Ich möchte eben die gleiche nonce für jedes Formular. Bei meinem Vorhaben macht es einfach keinen Sinn für jedes Formular eine Nonce zu generieren und es würde auch meinen Controller dann unnötig verkomplizieren.

    Anderes Beispiel: Nehmen wir mal als Beispiel eine Liste von Shop Produkten, würde ja keinen Sinn machen für jedes Formular (um in den Warenkorb zu fügen) ein anderes Token zu generieren und die Session unnötig zubeanspruchen. Oder?

  6. #6
    PostRank: 9 Avatar von b3317133
    Registriert seit
    21.11.2014
    Beiträge
    1.260
    Das Nonce-System von WordPress dient hauptsächlich zur Abwehr von CSRF-Angriffen. Wenn man das System (wie oder warum auch immer) absichtlich aushebelt, sollte man genau wissen was man tut. Viel Erfolg mit dem Projekt.

  7. #7
    PostRank: 3
    Registriert seit
    04.01.2017
    Beiträge
    122
    Ja wie gesagt, wollte ja nicht rummekern. Aber gut ist. Weiss schon was ich mache.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •