Google reCaptcha i CakePHP
W artykule przedstawiam integrację google reCaptcha z frameworkiem CakePHP. Najpierw musimy się zalogować na stronie. Otrzymasz swój site key oraz secret key. Zapisz je i zachowaj. Będą potrzebne podczas integracji. W sekcji head dodaj skrypt recaptchy.
<script src='https://www.google.com/recaptcha/api.js'></script>Dodaj poniższy kod wewnątrz formularza, w którym chcesz użyć captchy. W atrybucie data-sitekey wpisz swój site key.
<div class="g-recaptcha" data-sitekey="twoj_site_key"></div>Końcowym krokiem jest dodanie w kontrolerze kodu obsługującego reCaptchę. Należy pamiętać aby zamienić twoj_secret_key na swój secret key.
if(isset($this->request->data['g-recaptcha-response'])) {
$captcha = $this->request->data['g-recaptcha-response'];
}
if(!$captcha) {
$this->Session->setFlash(__('Weryfikacja captcha jest wymagana'), 'flash_error');
} else {
$response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=twoj_secret_key&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
$arr_resp = json_decode($response);
if(empty($arr_resp)) {
$this->Session->setFlash(__('Weryfikacja captcha jest niepoprawna'), 'flash_error');
}
if(!empty($arr_resp) && $arr_resp->success==false) {
$this->Session->setFlash(__('Weryfikacja captcha jest niepoprawna'), 'flash_error');
}
}
