以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>
Laravel beginTransaction 使用$connection指定連線資料庫時若單純rollback會發生失敗的情況
當我們使用 migrate 出現以下訊息:Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes
挑選適合的網站字型,可以為您的網站質感加分不少,到底應該如何挑選合適的字型呢?接下來介紹由免費中文字型--思源黑體。
使用精簡的 HTML 程式碼 (包含任何內嵌 JavaScript 和其中所含的 CSS) 可以大幅減少資料量,同時加快下載及剖析的速度。
經歷了多個alpha版本後Bootstrap 5 beta版於2020年12月7日釋出