国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Maison Tutoriel CMS WordPresse Intégration d'un captcha avec le formulaire de connexion WordPress

Intégration d'un captcha avec le formulaire de connexion WordPress

Feb 19, 2025 am 09:52 AM

Ce tutoriel montre la construction d'un plugin WordPress qui intègre Google Recaptcha dans le système de connexion WordPress. Le plugin utilise l'API HTTP pour envoyer une demande de poste à RecaptCha, validant les réponses CAPTCHA utilisateur.

Le développement du plugin implique la création d'une classe PHP avec des propriétés pour les clés RecaptCha, l'ajout du captcha au formulaire de connexion et la validation des réponses. Le code montre comment envoyer une demande de poste à https://www.google.com/recaptcha/api/verify avec les paramètres nécessaires. Cela améliore la sécurité du site Web en différenciant les humains des robots, empêchant les tentatives d'accès non autorisées.

Un tutoriel précédent a exploré l'API WordPress HTTP. Ce tutoriel s'appuie sur cela, présentant la consommation d'API dans un plugin WordPress. Nous avons précédemment construit un widget WordPress de données et de données sociales à l'aide de l'API HTTP.

Vous trouverez ci-dessous une capture d'écran du formulaire de connexion WordPress avec le captcha intégré:

Integrating a CAPTCHA with the WordPress Login Form

Développement du plugin

Avant de coder, enregistrez votre domaine sur recaptcha et obtenez vos clés API publiques et privées.

1. En-tête du plugin:

<?php
/*
Plugin Name: WP Login Form with reCAPTCHA
Plugin URI: https://www.sitepoint.com
Description: Adds Google's reCAPTCHA to WordPress Login
Version: 1.0
Author: Agbonghama Collins
Author URI: http://w3guy.com
License: GPL2
*/

2. Classe PHP:

Créez une classe PHP pour stocker les touches RecaptCha:

class reCAPTCHA_Login_Form {
    private $public_key, $private_key;

    public function __construct() {
        $this->public_key  = '6Le6d-USAAAAAFuYXiezgJh6rDaQFPKFEi84yfMc';
        $this->private_key = '6Le6d-USAAAAAKvV-30YdZbdl4DVmg_geKyUxF6b';

        add_action( 'login_form', array( $this, 'captcha_display' ) );
        add_action( 'wp_authenticate_user', array( $this, 'validate_captcha_field' ), 10, 2 );
    }

    public function captcha_display() {
        ?>
        <??>
        <noscript>
            <iframe src="https://www.google.com/recaptcha/api/noscript?k=<?=$this->public_key?>"
                    height="300" width="300" frameborder="0"></iframe><br><br>
            <textarea name="recaptcha_challenge_field" rows="3" cols="40"></textarea>
            <input type="hidden" name="recaptcha_response_field" value="manual_challenge">
        </noscript>
        <?php
    }

    public function validate_captcha_field($user, $password) {
        if ( ! isset( $_POST['recaptcha_response_field'] ) || empty( $_POST['recaptcha_response_field'] ) ) {
            return new WP_Error( 'empty_captcha', 'CAPTCHA cannot be empty' );
        }

        if( isset( $_POST['recaptcha_response_field'] ) && $this->recaptcha_response() === 'false' ) {
            return new WP_Error( 'invalid_captcha', 'Incorrect CAPTCHA response' );
        }

        return $user;
    }

    public function recaptcha_response() {
        $challenge = isset($_POST['recaptcha_challenge_field']) ? esc_attr($_POST['recaptcha_challenge_field']) : '';
        $response  = isset($_POST['recaptcha_response_field']) ? esc_attr($_POST['recaptcha_response_field']) : '';
        $remote_ip = $_SERVER["REMOTE_ADDR"];

        $post_body = array(
            'privatekey' => $this->private_key,
            'remoteip'   => $remote_ip,
            'challenge'  => $challenge,
            'response'   => $response
        );

        return $this->recaptcha_post_request( $post_body );
    }

    public function recaptcha_post_request( $post_body ) {
        $args = array( 'body' => $post_body );
        $request = wp_remote_post( 'https://www.google.com/recaptcha/api/verify', $args );
        $response_body = wp_remote_retrieve_body( $request );
        $answers = explode( "\n", $response_body );
        $request_status = trim( $answers[0] );
        return $request_status;
    }
}

new reCAPTCHA_Login_Form();

3. Instanciation du plugin:

Enfin, instanciez la classe:

new reCAPTCHA_Login_Form();

Cela complète le code du plugin. Téléchargez le plugin complet pour une utilisation ou une étude plus approfondie. Cela fait partie d'une série présentant l'utilisation de l'API WordPress HTTP dans les plugins.

(Section FAQs supprimée pour la concision, car elle ne nécessite pas de réécriture pour la pseudo-originalité. Le contenu est factuel et n'a pas besoin d'altération.)

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Comment minifiliser les fichiers JavaScript dans WordPress Comment minifiliser les fichiers JavaScript dans WordPress Jul 07, 2025 am 01:11 AM

Les fichiers JavaScript de mini-divateur peuvent améliorer la vitesse de chargement du site Web WordPress en supprimant les blancs, les commentaires et le code inutile. 1. Utilisez des plug-ins de cache qui prennent en charge la compression de fusion, tels que W3TotalCache, Activer et sélectionner le mode de compression dans l'option "Minify"; 2. Utilisez un plug-in de compression dédié tel que FastvelocityMinify pour fournir un contr?le plus granulaire; 3. Compressez manuellement les fichiers JS et téléchargez-les via FTP, adapté aux utilisateurs familiers avec les outils de développement. Notez que certains thèmes ou scripts plug-in peuvent entrer en conflit avec la fonction de compression, et vous devez tester soigneusement les fonctions du site Web après l'activation.

Comment prévenir les commentaires Spam programmatiquement Comment prévenir les commentaires Spam programmatiquement Jul 08, 2025 am 12:04 AM

Le moyen le plus efficace de prévenir le spam de commentaires est de l'identifier et de l'intercepter automatiquement par des moyens programmatiques. 1. Utilisez des mécanismes de code de vérification (tels que Googler captcha ou hcaptcha) pour distinguer efficacement les humains et les robots, en particulier adaptés aux sites Web publics; 2. Définissez des champs cachés (technologie de miel) et utilisez des robots pour remplir automatiquement les fonctionnalités pour identifier les commentaires du spam sans affecter l'expérience utilisateur; 3. Vérifiez la liste noire des mots clés du contenu des commentaires, filtrez les informations sur les spams par la correspondance des mots sensibles et faites attention à éviter les erreurs de jugement; 4. Jugez la fréquence et la source IP des commentaires, limitez le nombre de soumissions par unité de temps et établissez une liste noire; 5. Utilisez des services anti-spam tiers (comme Akismet, CloudFlare) pour améliorer la précision d'identification. Peut être basé sur le site Web

Comment mettre en place des actifs pour un bloc Gutenberg Comment mettre en place des actifs pour un bloc Gutenberg Jul 09, 2025 am 12:14 AM

Lorsque vous développez des blocs Gutenberg, la méthode correcte des actifs d'Enqueue comprend: 1. Utilisez Register_Block_Type pour spécifier les chemins de chemin de l'éditor_script, editor_style et style; 2. Enregistrez les ressources via WP_register_Script et WP_register_style dans Functions.php ou plug-in, et définissez les dépendances et versions correctes; 3. Configurez l'outil de construction pour sortir le format du module approprié et assurez-vous que le chemin est cohérent; 4. Contr?lez la logique de chargement du style frontal via ADD_THEME_SUPPORT ou ENQUEUE_BLOCK_Assets pour s'assurer que la logique de chargement du style frontal est assurée.

Comment ajouter des règles de réécriture personnalisées Comment ajouter des règles de réécriture personnalisées Jul 08, 2025 am 12:11 AM

La clé pour ajouter des règles de réécriture personnalisées dans WordPress est d'utiliser la fonction add_rewrite_rule et de vous assurer que les règles prennent effet correctement. 1. Utilisez add_rewrite_rule pour enregistrer la règle, le format est add_rewrite_rule ($ regex, $ redirect, $ after), où $ regex est une URL de correspondance d'expression régulière, $ redirect spécifie la requête réelle et $ après contr?le l'emplacement de la règle; 2. Les variables de requête personnalisées doivent être ajoutées via add_filter; 3. Après modification, les paramètres de liaison fixe doivent être rafra?chis; 4. Il est recommandé de placer la règle en ?haut? pour éviter les conflits; 5. Vous pouvez utiliser le plug-in pour afficher la règle actuelle pour plus de commodité

Comment optimiser les robots wordpress txt Comment optimiser les robots wordpress txt Jul 13, 2025 am 12:37 AM

Robots.txt est crucial pour le référencement des sites Web WordPress et peut guider les moteurs de recherche pour craquer un comportement, éviter le contenu en double et améliorer l'efficacité. 1. Les chemins du système de bloc tels que / wp-admin / et / wp-incluses /, mais évitez de bloquer accidentellement le / les téléchargements / répertoire; 2. Ajouter des chemins de sitemap tels que le plan du site: https://yourdomain.com/sitemap.xml pour aider les moteurs de recherche à découvrir rapidement des cartes de site; 3. Limite / Page / et URL avec des paramètres pour réduire les déchets du robot, mais veillez à ne pas bloquer les pages d'archives importantes; 4. évitez les erreurs courantes telles que le blocage accidentellement de l'ensemble du site, le plug-in de cache affectant les mises à jour et l'ignorer la correspondance des terminaux et des sous-domaines mobiles.

Comment profiter des performances WordPress Comment profiter des performances WordPress Jul 07, 2025 am 12:43 AM

1. Utilisez le plug-in Performance Analysis pour localiser rapidement les problèmes. Par exemple, QueryMonitor peut afficher le nombre de requêtes de base de données et d'erreurs PHP, BlackBoxProfiler génère des rapports d'exécution de fonction et NewRelic fournit une analyse au niveau du serveur; 2. L'analyse des performances d'exécution de PHP nécessite la vérification des fonctions longues, l'utilisation des outils de débogage et l'allocation de mémoire, tels que XDebug génère des graphiques de flamme pour aider à l'optimisation; 3. 4. Combiner des outils externes tels que GooglePageSpeedInsights, Gtmetrix et WebPageTest pour évaluer le front-end Plus

Quelle est la version PHP minimum pour WordPress Quelle est la version PHP minimum pour WordPress Jul 10, 2025 am 11:21 AM

WordPressRequireSAtleastPhp7.4, bien que 8.0orHigheReriSreComMendForBetterformanceAnDecurity.olderversionsLIVEL5

Comment utiliser InspectorControls à Gutenberg Comment utiliser InspectorControls à Gutenberg Jul 12, 2025 am 12:16 AM

InspectorControls est un composant utilisé dans le développement de Gutenberg pour ajouter des commandes personnalisées dans la barre latérale droite. 1. Il appartient au package @ wordPress / Block-Editor. 2. Il est souvent utilisé avec Panelbody, TextControl et d'autres composants. 3. Lorsque vous l'utilisez, vous devez introduire et raisonnablement disposer des types de contr?le tels que des zones de texte, des sélections de traction, des commutateurs, des curseurs et des sélecteurs de couleurs dans edit.js. 4. Faites attention au regroupement des paramètres, gardez-les simple, soutenez l'internationalisation et optimisez les performances.

See all articles