리캡차 설치를 위해서는 리캡챠를 사용할 도메인을 등록해 구글 리캡차에서 사이트키와 프라이빗키를 발급받은 후, 그런 후 사이트 키는 여러분 폼메일이 있는 클라이언트 측(html파일)에 그리고 프라이빗키(시크릿키)는 여러분의 폼메일 스크립트 (예 form.php) 에 추가 설치해 주셔야 합니다.
즉, 폼이 있는 html에 사이트키 php 스크립트 에는 프라이빗키를 추가해 줍니다.
그래서 캡차가 되면 서버측 검증 결과가 나오게 됩니다.
자. 다음의 순서를 따라하시면 됩니다.
구글 리캡차 주소
https://www.google.com/recaptcha
1. 간단하게 리캡차 넣기
head 태그 사이에 다음을 넣는다.
<script src=”https://www.google.com/recaptcha/api.js” async defer></script>
그리고 사이트키와 함께 다음을 추가한다.
<div class=”g-recaptcha” data-sitekey=”사이트키”></div>
2.리캡차 안하면 경고창 뛰우기
체크 안하면 checkrecaptachSubmit() 이라고 이름지은 함수가 뜨게 다음을
폼메일 액션자리에 넣는다.
<form method=”post” action=”사용하는폼메일.php” onsubmit=”return checkrecaptachSubmit();”>
그리고 checkrecaptachSubmit() 함수를 head 태그 사이에 넣는다.
<script type="text/javascript"> function checkrecaptachSubmit() { if (grecaptcha.getResponse() == ""){ alert("Please check the reCaptcha"); return false;} else { return true;}} </script>
3.서버 쪽 Validation . 서버측에는 리캡차 체크 했는지 확인 하고 발급받은 프라이빗키(시크릿키)를 넣어주면 된다. 아래 코드를 그냥 여러분 폼.php 파일에 추가해주면 됨.
<?php
if(isset($_POST['g-recaptcha-response'])){
$captcha=$_POST['g-recaptcha-response'];
}
if(!$captcha){
echo '<h2리캡차를 확인하세요</h2>';
exit;
}
$secretKey = "시크릿키";
$ip = $_SERVER['REMOTE_ADDR'];
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$secretKey."&response=".$captcha."&remoteip=".$ip);
$responseKeys = json_decode($response,true);
if(intval($responseKeys["success"]) !== 1) {
echo '<h2>너 스패머지? 나가라</h2>';
} else {
echo '<h2>고맙습니다.</h2>';
}
?>