Rumah >Tutorial CMS >WordTekan >Mengintegrasikan CAPTCHA dengan Borang Pendaftaran WordPress

Mengintegrasikan CAPTCHA dengan Borang Pendaftaran WordPress

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌asal
2025-02-18 11:42:09273semak imbas

Tutorial ini menunjukkan cara mengintegrasikan semula Recaptcha Google ke dalam borang pendaftaran WordPress untuk memerangi pendaftaran spam. Kami akan memanfaatkan API HTTP WordPress untuk mengesahkan jawapan pengguna.

Konsep Utama:

  • Recaptcha: Perkhidmatan Google yang membezakan antara manusia dan bot, menghalang pendaftaran spam automatik.
  • WordPress HTTP API: Digunakan untuk berkomunikasi dengan API Recaptcha untuk pengesahan.
  • Pembangunan Plugin: Kami akan membina plugin tersuai untuk mengendalikan integrasi Recaptcha.

Kenapa gunakan Recaptcha?

populariti WordPress menjadikannya sasaran utama untuk bot yang membuat banyak akaun spam. Recaptcha menyediakan penyelesaian yang mantap untuk masalah ini.

Langkah -langkah Pembangunan Plugin:

  1. Dapatkan Kekunci Recaptcha: Daftar domain anda di laman web Recaptcha (Recaptcha V2 disyorkan) dan dapatkan kunci tapak dan kunci rahsia anda.

  2. header plugin: Mulakan fail plugin anda () dengan tajuk plugin standard: recaptcha-registration.php

<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>
    php class:
  1. Buat kelas untuk menguruskan fungsi Recaptcha:
<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>
    Aktifkan plugin:
  1. muat naik ke direktori anda dan aktifkannya dalam panel admin WordPress anda. Ingatlah untuk menggantikan kunci pemegang tempat dengan kunci sebenar anda. recaptcha-registration.php /wp-content/plugins/
screenshot borang pendaftaran yang dilindungi:

Versi yang lebih baik ini menggunakan Recaptcha V2 yang lebih baru dan pemuatan tak segerak untuk prestasi dan pengalaman pengguna yang lebih baik. Ia juga termasuk pengendalian ralat dan pengantarabangsaan. Ingatlah untuk menggantikan tempat letak yang bertengkar dengan kekunci Recaptcha sebenar anda. Kod ini lebih ringkas dan cekap daripada contoh asal. Integrating a CAPTCHA with the WordPress Registration Form

Atas ialah kandungan terperinci Mengintegrasikan CAPTCHA dengan Borang Pendaftaran WordPress. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn