php만으로도 캡챠기능을 만들 수 있지만, 좀 더 확실하고 안전한 구글 리캡챠를 사용해보자.

 

 

 

완성샷

 

 

1. 구글 리캡챠 홈페이지(https://developers.google.com/recaptcha/intro) 에 들어가서 'sign up for an API key pair'를 클릭

 

 

 

2. 라벨을 마음대로 적고 reCAPTCHA v2를 선택하고 동의 한다.

 

 

3. 사이트 키와 비밀키를 복사해둔다.

 

 

4. 코드 작성

 

 1. joinForm.php

<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
    <script src="https://www.google.com/recaptcha/api.js" async defer>
	</script>
  </head>

  <body>
	<form action="join.php" method="post">
	<table style="margin:auto;">
		<tr>
			<td>아이디</td>
			<td><input type="text" name="id"></td>
		</tr>
		<tr>
			<td>비밀번호</td>
			<td><input type="password" name="pw"></td>
		</tr>
		<tr>
			<td>비밀번호 확인</td>
			<td><input type="password" name="pw2"></td>
		</tr>
		<tr>
			<td colspan="2">
			<div id="captcha" class="g-recaptcha" data-sitekey="사이트키"></div>
			</td>
		</tr>
	</table>
	<div style="text-align:center;">
		<button type="submit">가입하기</button>
	</div>
	</form>
    </script>
  </body>
</html>

 

 2. join.php

<?
$captcha = $_POST['g-recaptcha-response'];
$secretKey = '시크릿키';
$ip = $_SERVER['REMOTE_ADDR'];

$data = array(
  'secret' => $secretKey,
  'response' => $captcha,
  'ip' => $ip
);
$parameter = http_build_query($data);
$url = "https://www.google.com/recaptcha/api/siteverify?".$parameter;

$response = file_get_contents($url);
$responseKeys = json_decode($response, true);

if ($responseKeys["success"]) {
  echo '캡챠 성공';
	echo '<br/>';
	echo '가입을 진행하세요.';
} else {
  	echo '<script>
			alert(\'가입실패\');
			history.go(-1);
		  </script>';
}
?>

 


WRITTEN BY
beautifulhill

,