Maison > Tutoriel CMS > WordPresse > Intégrer un captcha au formulaire d'enregistrement WordPress

Intégrer un captcha au formulaire d'enregistrement WordPress

尊渡假赌尊渡假赌尊渡假赌
Libérer: 2025-02-18 11:42:09
original
271 Les gens l'ont consulté

Ce didacticiel montre comment intégrer RecaptCha de Google dans un formulaire d'enregistrement WordPress pour lutter contre les enregistrements de spam. Nous tirons parti de l'API WordPress HTTP pour vérifier les réponses des utilisateurs.

Concepts clés:

  • recaptcha: un service Google qui distingue les humains et les robots, empêchant les enregistrements de spam automatisés.
  • API WordPress HTTP: Utilisé pour communiquer avec l'API RECAPTCHA pour la vérification.
  • Développement du plugin: Nous allons créer un plugin personnalisé pour gérer l'intégration RecaptCha.

Pourquoi utiliser recaptcha?

La popularité de WordPress en fait une cible privilégiée pour les robots créant de nombreux comptes de spam. Recaptcha fournit une solution robuste à ce problème.

Étapes de développement du plugin:

  1. Obtenez les clés RecaptCha: Enregistrez votre domaine sur le site Web de RecaptCha (RecaptCha v2 est recommandé) et obtenez votre clé de site et votre clé secrète.

  2. En-tête du plugin: Commencez votre fichier de plugin (recaptcha-registration.php) avec l'en-tête du plugin standard:

<?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
 */
Copier après la connexion
  1. Classe PHP: Créez une classe pour gérer la fonctionnalité RecaptCha:
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();
Copier après la connexion
  1. Activez le plugin: Téléchargez recaptcha-registration.php dans votre répertoire /wp-content/plugins/ et activez-le dans votre panneau d'administration WordPress. N'oubliez pas de remplacer les clés d'espace réservé par vos clés réelles.

Capture d'écran du formulaire d'enregistrement protégé:

Integrating a CAPTCHA with the WordPress Registration Form

Cette version améliorée utilise le nouveau RecaptCha V2 et le chargement asynchrone pour de meilleures performances et une expérience utilisateur. Il comprend également la gestion des erreurs et l'internationalisation. N'oubliez pas de remplacer les espaces réservés entre crochets par vos clés Recaptcha réelles. Ce code est plus concis et efficace que l'exemple d'origine.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal