>  기사  >  백엔드 개발  >  보안 문자 PHP 공간이 소켓을 지원하지 않지만 컬을 지원하는 경우 recaptcha 사용

보안 문자 PHP 공간이 소켓을 지원하지 않지만 컬을 지원하는 경우 recaptcha 사용

WBOY
WBOY원래의
2016-07-29 08:47:141177검색

1. recaptchalib.php

코드 복사에서 두 가지 방법을 수정합니다. 코드는 다음과 같습니다.


function _recaptcha_http_post($host , $ 경로, $data, $port = 80) {
$req = _recaptcha_qsencode ($data);
$response = ''
$url = $host.$path; post_data = $req;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1)// 게시 중입니다. 데이터!
curl_setopt($ch, CURLOPT_POST, 1);
//
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data)에 post 변수를 추가합니다. 🎜>curl_close($ch);
//echo $output;
$response = $output;
return $response;
}
function recaptcha_check_answer($privkey, $remoteip, $ Challenge, $response, $extra_params = array())
{
if ($privkey == null || $privkey == '') {
die ("reCAPTCHA를 사용하려면 API를 받아야 합니다. https://www.google.com/recaptcha/admin/create")의 키;
}
if ($remoteip == null || $remoteip == '') {
die ("보안상의 이유로 원격 IP를 reCAPTCHA에 전달해야 합니다")
}
//스팸 제출 삭제
if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
$recaptcha_response = new ReCaptchaResponse();
$recaptcha_response->is_valid = false;
$recaptcha_response->error = 'incorcor-captcha-sol';
return $recaptcha_response; response = _recaptcha_http_post (RECAPTCHA_VERIFY_SERVER, "/recaptcha/api/verify",
배열 (
'privatekey' => $privkey,
'remoteip' => $remoteip,
'challenge ' => $challenge,
'response' => $response
) $extra_params
)
$answers = 폭발("n", $response [1]); $recaptcha_response = new ReCaptchaResponse();
$pos = strpos($response, 'true')
if ($pos === false) {
$recaptcha_response->is_valid = false; 🎜>$recaptcha_response->error = $response;
} else {
$recaptcha_response->is_valid = true;
}
return $recaptcha_response; >
2.demo.php



코드 복사

코드는 다음과 같습니다.


>< ;body>


require_once('recaptchalib.php')// 키 가져오기 https: //www.google.com/recaptcha/admin/create

$publickey = "공개 키 --- http://www.google.com/recaptcha에서 직접 신청하세요." $ privatekey = " 개인 키 --- http://www.google.com/recaptcha에서 직접 적용하세요."; # reCAPTCHA의 응답 $resp = # reCAPTCHA의 오류 코드 ,

$error = null;

# reCAPTCHA 응답이 있었나요?
if ($_POST["recaptcha_response_field"]) {
$resp = recaptcha_check_answer ($privatekey,
$ _SERVER[ "REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"])
if ($resp->is_valid) {
echo " it! ";
} else {
# 표시할 수 있도록 오류 코드를 설정합니다.
$error = $resp->error;
echo $error;
//echo $_POST ["recaptcha_challenge_field"];
//echo $_POST["recaptcha_response_field"];
}
}
echo recaptcha_get_html($publickey, $error)?> 🎜>



;


위 내용은 captcha PHP 공간이 소켓을 지원하지 않지만, captcha 내용을 포함하여 컬을 지원하는 경우 recaptcha의 사용법을 소개하고 있습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.