본문 바로가기
  • Tried. Failed. Logged.
⚙️백엔드/아파치

아파치 - 구글 캡챠(reCAPTCHA) 적용하기(PHP)

by Janger 2023. 9. 2.
728x90

 

 

/etc/php/{본인 php 버전}/apache2/php.ini (curl 기능 주석 해제)
extension=curl <- 주석 해제(원래는 ;extension=curl)

 

구글 캡챠(reCAPTCHA) 사이트 키, 비밀 키 얻기

https://www.google.com/recaptcha/admin

 

로그인 - Google 계정

이메일 또는 휴대전화

accounts.google.com

 

login.html
<html>
  <head>
    <title>reCAPTCHA demo: Simple page</title>
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  </head>
  <body>
    <form action="valid.php" method="POST">
      <div class="g-recaptcha" data-sitekey="내 사이트 키"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
  </body>
</html>

 

valid.php
<?php
    $captcha = $_POST['g-recaptcha-response'];
    $secretKey = '비밀 키'; 

    $data = array(
      'secret' => $secretKey,
      'response' => $captcha,
    );

    $url = "https://www.google.com/recaptcha/api/siteverify";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    $response = curl_exec($ch);
    curl_close($ch);

    $responseKeys = json_decode($response, true);

    if ($responseKeys["success"]) {
      echo "통과 성공";
    } else {
      echo "통과 실패";
    }
?>

 

 

 

참고: 

https://developers.google.com/recaptcha/docs/display?hl=ko 

 

reCAPTCHA v2  |  Google for Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English reCAPTCHA v2 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 페이지에서는 웹페이지에서

developers.google.com

https://wonpaper.tistory.com/374

 

[PHP] 구글 캡차(Captcha) 달기 - V3, V2 버전 [자동입력방지]

구글의 캡차를 달아보자 최근 구글에는 reCaptcha V2 와 V3가 있는데, V3이 더욱 간소화되었다. [ reCaptcha V2 ] 일단 구글 캡차 콘솔 어드민으로 간다. www.google.com/recaptcha 그런다음 다음 화면과 같이 새

wonpaper.tistory.com

https://enjoyk.tistory.com/111

 

php curl 사용 하기 Fatal error: Call to undefined function curl_init()

curl_init() 명령어 실행시 아래 메세지가 표출된다면 모듈이 설치되거나 사용 설정 되지 않았기 때문이다. Fatal error: Call to undefined function curl_init() 2가지 처리를 해주어야 한다. 1. 셋팅 2. 설치 먼저

enjoyk.tistory.com

 

728x90