以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>
網站SEO優化沒有想像中複雜,只要能把握幾個重點,就能將網站排名提升囉!
Laravel 部署時發生Error竟然是版本所造成的
在Laravel 5.3版本起有了新的功能 循環變量 loop 使用foreach迴圈時可以在迴圈內使用$loop得到迴圈內的訊息
get view html in controller laravel?如何在Controller中取得View Blade的HTML字串呢?
TLS 1.0 存在漏洞,在Acunetix 弱點掃描中如果沒有停用TLS 1.0將會被列為中度風險,以apache為例教學關閉 TLS 1.0