도배방지코드 캡챠부분 질문드려봐요..

도배방지코드 캡챠부분 질문드려봐요..

QA

도배방지코드 캡챠부분 질문드려봐요..

답변 3

본문

도배방지코드 캡챠부분 질문드려봐요..

 

해당부분에 특정 단어를 입력하면 캡챠단어와 달라도 패스를 해주고싶은데

어디부분을 참고하면 될까요?

#1

이 질문에 댓글 쓰기 :

답변 3

plugin/kcaptcha/kcaptcha.lib.php 269라인쯤을 다음 처럼 바꿔 시도해 보세요.


// 세션에 저장된 캡챠값과 $_POST 로 넘어온 캡챠값을 비교
function chk_captcha()
{
    $reserve_words = "abcdefg"; //미리 지정된 예약어
    
    $captcha_count = (int)get_session('ss_captcha_count');
    if ($captcha_count > 5) {
        return false;
    }
    if (!isset($_POST['captcha_key'])) return false;
    if (!trim($_POST['captcha_key'])) return false;
    if ($_POST['captcha_key'] != get_session('ss_captcha_key')) {
        if($reserve_words) return true;
        else{
            $_SESSION['ss_captcha_count'] = $captcha_count + 1;
            return false;
        }
    }
    return true;
}

plugin/kcaptcha/kcaptcha_result.php 파일을 살펴보고 

의도하는대로 수정하셔야 겠습니다.

다음처럼 kcaptcha_result.php파일 내용을 아래내용으로 대체하고 시도해 보시죠.

미리 $reserve_words에 원하시는 에약어를 넣으시고요. 캡차값에 맞지 않아도 그 값이 있으면

오케이 됩니다.


<?php
// 캡챠 세션값과 비교하여 맞는지? 틀린지? 결과값을 출력합니다.
include_once("_common.php");
//header("Content-Type: text/html; charset=$g4[charset]");
$reserve_words = "abcdefg";
if(get_session("ss_captcha_key") == $_POST['captcha_key']){
    $count = (int)get_session("ss_captcha_count");
    if ($count >= 5) { // 설정값 이상이면 자동등록방지 입력 문자가 맞아도 오류 처리
        echo false;
    } else {
        set_session("ss_captcha_count", $count + 1);
         echo (get_session("ss_captcha_key") == $_POST['captcha_key']) ? true : false;
    }
}
else{
    if($reserve_words) echo true;
    else echo false;
}
?>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #1 ×
전체 28
© SIRSOFT
현재 페이지 제일 처음으로