[PHP] 자동가입방지 & 로봇 확인 GOOGLE - reCAPTCHA

2016. 4. 28. 12:22Web



336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.




구글 로그인 후...



버튼 클릭 !





입력을 해라~!


Label에는

babysunmoon.tistory.com : 주로로 블로그

뭐 요딴 식으로..


Domains에는

naver.com

daum.net


뭐 요딴식으로 하나에 한줄씩 적으라고 써있네









넘어가면

Site key이거랑 Secret key이거랑 보이고..

<script src='https://www.google.com/recaptcha/api.js'></script><- 이 건 head닫기 전에 넣고

<div class="g-recaptcha" data-sitekey="니꺼 넣어라~!"></div><- 이 건 form 끝부분에 넣고


뭐 이렇게 나오면서 스텝 1 스텝 2 따라하라고 친절하게도 나오네...




그냥 쉽게 예로 테스트 해 보면..


로봇 체크 박스 놓고 싶은 곳에




<script src='https://www.google.com/recaptcha/api.js'></script>


<form name="fRec" method="post" onsubmit="return fRecs(this);" autocomplete="off" style='margin:0px;'>

  <input type=submit />

  <input type=hidden id="remoteip" name="remoteip" value="<?=$_SERVER[REMOTE_ADDR]?>" />

  <div class="g-recaptcha" data-sitekey="니꺼 넣어라~!"></div>

</form> 

<script>

  function fRecs(f)

  {

    f.action = "./확인할곳.php";

    f.submit();

  }

</script>


이렇게 넣고 


확인할곳.php에


$url = 'https://www.google.com/recaptcha/api/siteverify?secret=니꺼넣으라고~!&response='.$_POST['g-recaptcha-response'].'&remoteip='.$_POST[remoteip];


$flag = json_decode(file_get_contents($url));

echo($flag->success);

if(!$flag->success == "1")

{

#예외처리

echo "error";

}



참고로 $flag에는 


stdClass Object로

success 성공 여부 1 또는 null,

challenge_ts 시도했던 timestamp,

hostname 호스트명이 찍히네



그러면...




이거 잘 뜨네..