跳到主要內容區塊
:::
首頁 文章分享列表 文章分享

PHP Google reCAPTCHA 驗證教學

以PHP實作Google reCAPTCHA驗證,在前一篇有提到 Google reCAPTCHA 我不是機器人申請教學

在取得金鑰與密鑰後我們來實作驗證的部分。

Html

<form method="post">

    <input type="text" name="act" required placeholder="帳號">

    <input type="password" name="pwd" required placeholder="密碼">
    <!-- Google reCAPTCHA -->
    <div class="g-recaptcha" data-sitekey="這裡輸入Google reCAPTCHA 網站金鑰"></div>

    <input type="submit" value="送出">
</form>

<script type="text/javascript" src='https://www.google.com/recaptcha/api.js'></script>

PHP部分我們省略對於帳號密碼的驗證,以下是對於reCAPTCHA的驗證function

function check() {
    // Google reCAPTCHA 網站密鑰
    $data['secret'] = '這裡輸入Google reCAPTCHA 網站密鑰';
    $data['response'] = $_POST['g-recaptcha-response'];
    $ch = curl_init();
    // 使用CURL驗證
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL, 'https://www.google.com/recaptcha/api/siteverify');
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
    $result = curl_exec($ch);
    curl_close($ch);
    // 解密
    $result = json_decode($result, true);

    // 檢查是否通過驗證
    if ( ! isset($result['success']) || ! $result['success']) {
        // 驗證失敗
        return false;
    } else {
        // 驗證成功
        return true;
    }
}

在做多國語系網站時,如果需要指定reCAPTCHA顯示的語言,以顯示英文為例可以使用以下方式:

<script type="text/javascript" src='https://www.google.com/recaptcha/api.js?hl=en'></script>

 

這篇文章是否對您有幫助?
電子郵件
電話
FaceBook
LINE
聯繫我們