搜尋
首頁CMS教程&#&按將驗證驗與WordPress登錄表單集成

>本教程演示了構建一個WordPress插件,該插件將Google Recaptcha集成到WordPress登錄系統中。 該插件使用HTTP API發送郵政請求以recaptcha,驗證了用戶驗證驗響應。 >

插件開發涉及創建帶有recaptcha鍵的屬性的PHP類,將驗證碼添加到登錄表單中,並驗證響應。該代碼顯示瞭如何使用必要的參數將POST請求發送到

>。 這是通過將人類與機器人區分開來的,防止未經授權的訪問嘗試來增強網站的安全性。 https://www.google.com/recaptcha/api/verify>

>上一個教程探索了WordPress HTTP API。 本教程以此為基礎,展示了WordPress插件中的API消耗。 我們以前使用HTTP API構建了Whois和Social Data WordPress小部件的域。 下面的

是具有集成驗證碼的WordPress登錄表格的屏幕截圖:>

Integrating a CAPTCHA with the WordPress Login Form >插件開發

在編碼之前,請在Recaptcha上註冊您的域,並獲取您的公共和私有API鍵。

1。插件標題:

2。 PHP類:
<?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
*/

創建一個PHP類以存儲recaptcha鍵:

3。插件實例:
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();

最後,實例化類:

這完成了插件代碼。 下載完整的插件以供使用或進一步研究。 這是在插件中演示WordPress HTTP API使用的系列的一部分。

new reCAPTCHA_Login_Form();
>(FAQS部分是為了簡潔的,因為它不需要重寫偽 - 原始性。內容是事實,不需要更改。

以上是將驗證驗與WordPress登錄表單集成的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
WordPress開發的5個最佳ID(以及原因)WordPress開發的5個最佳ID(以及原因)Mar 03, 2025 am 10:53 AM

我為WordPress開發選擇了正確的綜合開發環境(IDE)十年後,我探索了WordPress開發的眾多集成開發環境(IDE)。 純粹的品種 - 從免費到商業,基本到FEA

使用OOP技術創建WordPress插件使用OOP技術創建WordPress插件Mar 06, 2025 am 10:30 AM

本教程演示了使用面向對象的編程(OOP)原理構建WordPress插件,利用Dribbble API。 讓我們在保留原始含義和結構的同時完善文本以清晰和簡潔。 object-ori

如何將PHP數據和字符串傳遞給WordPress中的JavaScript如何將PHP數據和字符串傳遞給WordPress中的JavaScriptMar 07, 2025 am 09:28 AM

將PHP數據傳遞給JavaScript的最佳實踐:WP_LOCALIZE_SCRIPT和WP_ADD_INLINE_SCRIPT的比較是PHP文件中靜態字符串中數據存儲數據的最佳實踐。 如果在您的JavaScript代碼中需要此數據,請合併

如何使用WordPress插件嵌入和保護PDF文件如何使用WordPress插件嵌入和保護PDF文件Mar 09, 2025 am 11:08 AM

本指南演示瞭如何使用WordPress PDF插件在WordPress帖子和頁面中嵌入和保護PDF文件。 PDFS為從目錄到演示文稿提供了一種用戶友好的,普遍訪問的格式。 此方法ENS

對於初學者來說,WordPress容易嗎?對於初學者來說,WordPress容易嗎?Apr 03, 2025 am 12:02 AM

WordPress對初學者來說容易上手。 1.登錄後台後,用戶界面直觀,簡潔的儀表板提供所有必要功能鏈接。 2.基本操作包括創建和編輯內容,所見即所得的編輯器簡化了內容創建。 3.初學者可以通過插件和主題擴展網站功能,學習曲線存在但可以通過實踐掌握。

為什麼有人會使用WordPress?為什麼有人會使用WordPress?Apr 02, 2025 pm 02:57 PM

人們選擇使用WordPress是因為其強大和靈活性。 1)WordPress是一個開源的CMS,易用性和可擴展性強,適合各種網站需求。 2)它有豐富的主題和插件,生態系統龐大,社區支持強大。 3)WordPress的工作原理基於主題、插件和核心功能,使用PHP和MySQL處理數據,支持性能優化。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)