WordPress Nonce User Funktion
Veröffentlicht am: 04.04.2024 | Letztes Update am: 04.04.24 | Lesezeit: 6 Minute/n

Die Funktion hnp_create_nonce_button_shortcode ist ein benutzerdefinierter Shortcode für WordPress, der es ermöglicht, Nonce-Buttons zu erstellen. Ein Nonce (einmaliges Token) ist ein Sicherheitsmaßnahme, das verwendet wird, um sicherzustellen, dass bestimmte Aktionen oder Formularübermittlungen nur von autorisierten Benutzern durchgeführt werden können.

Beschreibung der Funktion:

Parameter: Die Funktion akzeptiert einen optionalen Parameter user, der den Benutzernamen festlegt, für den der Nonce-Button erstellt werden soll. Wenn dieser Parameter nicht angegeben wird, wird automatisch der Benutzername des aktuellen angemeldeten Benutzers verwendet.

Erstellung des Nonce-Buttons: Die Funktion generiert ein HTML-Formular mit einem versteckten Feld für den Benutzernamen und einem Button, mit dem der Benutzer einen Nonce für den angegebenen Benutzer erstellen kann.

Erstellung des Nonces: Wenn das Formular abgeschickt wird, generiert die Funktion automatisch einen Nonce für den angegebenen Benutzer und zeigt ihn dem Benutzer an.

Ausgabe: Die Funktion gibt den erstellten Nonce-Button und eine Erfolgsmeldung aus, wenn der Nonce erfolgreich erstellt wurde.

Diese Funktion bietet eine einfache Möglichkeit, Nonce-Buttons in WordPress einzufügen und zu verwenden, was die Sicherheit von Formularen und Aktionen auf der Website verbessert.

Kopieren Sie diese Funktion in Ihre Functions.php in WordPress:

//////////////////// NONCE BEISPIELFUNKTION

// Shortcode für das Erstellen der Nonce-Buttons
function hnp_create_nonce_button_shortcode($atts) {
    $atts = shortcode_atts( array(
        'user' => '', // Standardwert ist leer
    ), $atts );

    // Überprüfen, ob ein Benutzer angegeben wurde, sonst Standardwert verwenden
    $user = !empty($atts['user']) ? $atts['user'] : 'User A';

    if (isset($_POST['create_nonce']) && $_POST['user'] === $user) {
        $nonce = wp_create_nonce('custom_nonce_' . $user);
        echo '<div class="hnp_nonce_mes"><span style="color: green">Erfolgreich. Nonce für ' . esc_html($user) . ': ' . esc_html($nonce) .'</span></div>';
    }
	
	$output = '<div class="hnp_nonce_but">';
    $output .= '<form method="post">';
    $output .= '<input type="hidden" name="user" value="' . esc_attr($user) . '" />';
    $output .= '<input type="submit" name="create_nonce" value="Nonce für ' . esc_html($user) . ' erstellen" />';
    $output .= '</form>';
	$output .= '</div>';

    return $output;
}
add_shortcode('hnp_create_nonce_button', 'hnp_create_nonce_button_shortcode');



// Überprüfen der Nonce-Gültigkeit für einen bestimmten Benutzer
function hnp_check_nonce_button_shortcode() {
	$output = '<div class="hnp_nonce_check">';
    $output .= '<form method="post">';
    $output .= '<label for="nonce">Nonce:</label>';
    $output .= '<input type="text" name="nonce" id="nonce" />';
    $output .= '<label for="user">Benutzer:</label>';
    $output .= '<select name="user" id="user">';
    $output .= '<option value="User A">User A</option>';
    $output .= '<option value="User B">User B</option>';
    $output .= '<option value="User C">User C</option>';
    $output .= '</select>';
    $output .= '<input type="submit" name="check_nonce" value="Nonce prüfen" />';
    $output .= '</form>';
	$output .= '</div>';

    if (isset($_POST['check_nonce'])) {
        $nonce = $_POST['nonce'];
        $user = $_POST['user'];
        if (wp_verify_nonce($nonce, 'custom_nonce_' . esc_attr($user))) {
            $output .= '<div class="hnp_nonce_mes"><br><span style="color: green">Nonce für ' . esc_html($user) . ' ist gültig</div>';
        } else {
            $output .= '<div class="hnp_nonce_mes"><br><span style="color: red">Nonce für ' . esc_html($user) . ' ist ungültig</div>';
        }
    }

    return $output;
}
add_shortcode('hnp_check_nonce_button', 'hnp_check_nonce_button_shortcode');

Nun nutzen Sie folgende Shortcodes für die Einbindung auf einer Seite Ihrere Wahl:

<strong>Nonce erzeugen für User:</strong>
[hnp_create_nonce_button user="User A"]
[hnp_create_nonce_button user="User B"]<br>
[hnp_create_nonce_button user="User C"]<br>


<strong>Nonce prüfen für User: </strong><br>
[hnp_check_nonce_button]

Auch ist es möglich, dass User direkt authentifiziert und zugewiesen werden:

//////////////////// NONCE BEISPIELFUNKTION mit wp_get_current_user()->user_login

function hnp_create_nonce_button_shortcode($atts) {
    $atts = shortcode_atts( array(
        'user' => '', // Standardwert ist leer
    ), $atts );

    // Benutzer aus den Shortcode-Attributen oder aktuellen Benutzer verwenden
    $user = !empty($atts['user']) ? $atts['user'] : wp_get_current_user()->user_login;

    if (isset($_POST['create_nonce']) && $_POST['user'] === $user) {
        $nonce = wp_create_nonce('custom_nonce_' . $user);
        echo '<div class="hnp_nonce_mes"><span style="color: green">Erfolgreich. Nonce für ' . esc_html($user) . ': ' . esc_html($nonce) .'</span></div>';
    }
    
    $output = '<div class="hnp_nonce_but">';
    $output .= '<form method="post">';
    $output .= '<input type="hidden" name="user" value="' . esc_attr($user) . '" />';
    $output .= '<input type="submit" name="create_nonce" value="Nonce für ' . esc_html($user) . ' erstellen" />';
    $output .= '</form>';
    $output .= '</div>';

    return $output;
}
add_shortcode('hnp_create_nonce_button', 'hnp_create_nonce_button_shortcode');


function hnp_check_nonce_button_shortcode() {
    $current_user = wp_get_current_user();
    $current_username = $current_user->user_login;

    $output = '<div class="hnp_nonce_check">';
    $output .= '<form method="post">';
    $output .= '<label for="nonce">Nonce:</label>';
    $output .= '<input type="text" name="nonce" id="nonce" />';
    $output .= '<input type="hidden" name="user" value="' . esc_attr($current_username) . '" />'; // Automatisch ausgewählter Benutzername
    $output .= '<input type="submit" name="check_nonce" value="Nonce prüfen" />';
    $output .= '</form>';
    $output .= '</div>';

    if (isset($_POST['check_nonce'])) {
        $nonce = $_POST['nonce'];
        $user = $_POST['user'];
        if (wp_verify_nonce($nonce, 'custom_nonce_' . esc_attr($user))) {
            $output .= '<div class="hnp_nonce_mes"><br /><span style="color: green">Nonce für ' . esc_html($user) . ' ist gültig</span></div>';
        } else {
            $output .= '<div class="hnp_nonce_mes"><br /><span style="color: red">Nonce für ' . esc_html($user) . ' ist ungültig</span></div>';
        }
    }

    return $output;
}
add_shortcode('hnp_check_nonce_button', 'hnp_check_nonce_button_shortcode');

Avatar
Homepage-nach-Preis

Homepage-nach-Preis DE ist eine Werbeagentur für Onlinemarketing und aktiv in der Webentwicklung tätig. Spezialisierungen wie Suchmaschinenoptimierung (SEO), Webdesign und Conversion sind feste Bestandteile des Unternehmens..

View admin Posts


↩ Zurück zur Blogübersicht

Die Webseite ist gerade offline.

>