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'); } }