Heim >CMS-Tutorial >WordDrücken Sie >Integration eines Captcha in das WordPress -Registrierungsformular

Integration eines Captcha in das WordPress -Registrierungsformular

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2025-02-18 11:42:09292Durchsuche

Dieses Tutorial zeigt, wie Googles Recaptcha in ein WordPress -Registrierungsformular in die Bekämpfung von Spam -Registrierungen integriert wird. Wir nutzen die WordPress HTTP -API, um die Benutzerantworten zu überprüfen.

Schlüsselkonzepte:

  • recaptcha: Ein Google -Dienst, der zwischen Menschen und Bots unterscheidet und automatisierte Spam -Registrierungen verhindert.
  • WordPress HTTP -API: verwendet, um zur Überprüfung mit der Recaptcha -API zu kommunizieren.
  • Plugin -Entwicklung: Wir erstellen ein benutzerdefiniertes Plugin, um die Recaptcha -Integration zu verarbeiten.

Warum Recaptcha verwenden

Die Beliebtheit von

WordPress macht es zu einem Hauptziel für Bots, die zahlreiche Spam -Konten erstellen. Recaptcha bietet eine robuste Lösung für dieses Problem.

Plugin -Entwicklungsschritte:

  1. RECAPTCHA -Tasten erhalten: Registrieren Sie Ihre Domain auf der Recaptcha -Website (Recaptcha v2 wird empfohlen) und erhalten Sie Ihren Site -Schlüssel und Ihren geheimen Schlüssel.

  2. Plugin -Header: Starten Sie Ihre Plugin -Datei (recaptcha-registration.php) mit dem Standard -Plugin -Header:

<code class="language-php"><?php
/**
 * Plugin Name: reCAPTCHA Registration
 * Plugin URI:  [Your Plugin URI]
 * Description: Adds reCAPTCHA to the WordPress registration form.
 * Version:     1.0.0
 * Author:      [Your Name]
 * Author URI:  [Your Website]
 * License:     GPL2
 * License URI: https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain: recaptcha-registration
 */</code>
  1. PHP -Klasse: Erstellen Sie eine Klasse, um die Recaptcha -Funktionalität zu verwalten:
<code class="language-php">class reCAPTCHA_Registration {
    private $site_key;
    private $secret_key;

    public function __construct() {
        $this->site_key = '[YOUR_SITE_KEY]'; // Replace with your site key
        $this->secret_key = '[YOUR_SECRET_KEY]'; // Replace with your secret key

        add_action('register_form', array($this, 'display_recaptcha'));
        add_action('registration_errors', array($this, 'validate_recaptcha'), 10, 3);
    }

    public function display_recaptcha() {
        ?>
        
        <div class="g-recaptcha" data-sitekey="<?php echo $this->site_key; ?>" data-callback="recaptchaCallback"></div>
        
        <input type="hidden" id="g-recaptcha-response" name="g-recaptcha-response">
        <?php
    }

    public function validate_recaptcha($errors, $sanitized_user_login, $user_email) {
        $response = isset($_POST['g-recaptcha-response']) ? $_POST['g-recaptcha-response'] : null;

        if (empty($response)) {
            $errors->add('empty_recaptcha', __('Please complete the reCAPTCHA.', 'recaptcha-registration'));
        } else {
            $verify_response = $this->verify_recaptcha($response);
            if (!$verify_response['success']) {
                $errors->add('invalid_recaptcha', __('Invalid reCAPTCHA response.', 'recaptcha-registration'));
            }
        }
    }

    private function verify_recaptcha($response) {
        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $data = array(
            'secret' => $this->secret_key,
            'response' => $response,
            'remoteip' => $_SERVER['REMOTE_ADDR']
        );

        $response = wp_remote_post($url, array('body' => $data));
        return json_decode(wp_remote_retrieve_body($response), true);
    }
}

new reCAPTCHA_Registration();</code>
  1. Aktivieren Sie das Plugin: upload recaptcha-registration.php in Ihr /wp-content/plugins/ Verzeichnis und aktivieren Sie es in Ihrem WordPress -Administratorfeld. Denken Sie daran, die Platzhalterschlüssel durch Ihre tatsächlichen Schlüssel zu ersetzen.

Screenshot des geschützten Registrierungsformulars:

Integrating a CAPTCHA with the WordPress Registration Form

Diese verbesserte Version verwendet das neuere Recaptcha V2 und das asynchrone Laden, um eine bessere Leistung und Benutzererfahrung zu erhalten. Es umfasst auch Fehlerbehebung und Internationalisierung. Denken Sie daran, die plattenden Platzhalter durch Ihre tatsächlichen Recaptcha -Schlüssel zu ersetzen. Dieser Code ist prägnanter und effizienter als das ursprüngliche Beispiel.

Das obige ist der detaillierte Inhalt vonIntegration eines Captcha in das WordPress -Registrierungsformular. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn