以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>
使用daterangepicker UI介面選擇日期後,不會觸發input中的onchange事件
Composer 是一個套件管理工具,用途是在專案中可以透過簡易的指令將所使用的套件或程式碼庫安裝於專案內。
因為不是每天都在建置新專案,也不是每天都有網站上線,即使是遇到過無數次的問題,依然會在很久之後再次卡關,因此我把某些容易忽略的小細節記錄下來
要使用Facebook帳號登入,必須先建立Facebook 應用程式。
Slow HTTP Denial of Service Attack 是以非常緩慢的速度進行http請求,霸佔伺服器服務,達到癱瘓伺服器的目的,解決方式即是設定 Timeout