PHP zmSpamFree 캡차(Captcha) 적용하기
페이지 정보
본문
지엠스팸프리(zmSpamFree)는 제로보드뿐 아니라 기타 PHP구동 가능한 모든 웹 폼(web form)에 적용 가능합니다.
배포된 프로그램의 index.php 파일 안에 필요한 모든 코드가 들어 있습니다만, 초보자분들을 위해서 설명하겠습니다.
글쓰기 페이지 + 입력 처리 페이지
적용을 위해서는 2개의 파일을 수정해야 합니다.
첫째, 글쓰기 페이지 (예: write.php)
둘째, 입력 처리 페이지 (예: write_ok.php)
글쓰기 페이지'에서는 스팸차단코드 이미지와 입력폼을 출력해 주어야 하고,
입력 처리 페이지'에서는 입력된 스팸차단코드를 검증해야 하겠지요.
따라서, 아래와 같이 2개의 파일을 찾아 적당한 부분에 삽입하면 됩니다.
1. zmSpamFree 폴더를 업로드합니다.
서버 상단 폴더에 zmSpamFree 폴더로 업로드 하는것이 액박 나올 확률(?)을 낮출수 있습니다.
다른 폴더에 업로드시 액박 나오는 현상이 최근에 작업하는 과정에서 확인되었습니다. ( 2014-10-04 )
zmSpamFree
├ Fonts
├ Log <== 폴더 생성후 퍼미션은 707 이상으로 변경
├ index.php <== 테스트 파일... 정상으로 코드가 보여야 함
├ LICENSE
├ uninstall.php
├ zmspamfree.js
├ zmSpamFree.php
└ zsfCfg.php
2. 글쓰기 페이지 (예: write.php)
글쓰기 페이지에 아래와 같은 코드를 삽입합니다.
<a href="#" onclick="document.getElementById('zsfImg').src='/zmSpamFree/zmSpamFree.php?re&zsfimg=' + new Date().getTime(); return false;">
<img src="/zmSpamFree/zmSpamFree.php?zsfimg=<?php echo time();?>" id="zsfImg" alt="보안코드가 안 보이시면 클릭하세요" border="0" style="vertical-align:middle;" /></a>
<input type="text" size="8" maxlength="10" name="zsfCode" id="zsfCode" />옆에 보이는 문제의 답을 입력해주세요
코드에서 빨간색 부분은 본인 서버의 주소에 맞게 바꿔야 합니다.
예) https://www.happyjung.com/bbs 또는 /bbs
보안코드가 보이지 않을 경우 Log 폴더의 퍼미션을 707 로 변경합니다.
3. 입력 처리 페이지 (예: write_ok.php)
입력처리 페이지에 아래와 같은 코드를 삽입합니다.
(빨간색 부분은 본인 서버의 주소에 맞게 수정 예: ../bbs/ 또는 ../ 또는 ./ )
// 지엠스팸프리 검사
include "../zmSpamFree/zmSpamFree.php"; // 입력페이지에서 zmSpamFree 경로체크
if ( !zsfCheck( $_POST['zsfCode'] ) ) {
//echo '스팸차단코드가 틀렸습니다.';
echo "<script type='text/javascript'>";
echo " alert('스팸차단코드가 틀렸습니다.');";
echo " history.back();";
echo "</script>";
exit;
}
숫자 네 자리(예: 4591), 또는 영문(예: ADSF) 등은 더 이상 스팸방지기능을 할 수 없다고 판단됩니다.
하지만, 아래와 같은 스팸방지 문제 종류들은 여전히 제 역할을 할 것으로 기대합니다.
1: '1234 와 5678 중 큰 수는?'
2: '1234 와 5678 중 작은 수는?'
3: '83 더하기 5는?'
4: '94 빼기 3은?'
이러한 문제 설정은 지엠스팸프리의 환경설정 파일인 zsfCfg.php 를 조금만 고치시면 쉽게 바꿀 수 있습니다.
해당 파일의 약 41번째 줄의 $zsfCfg['codeForm']의 값을 아래와 같이 고치세요.
$zsfCfg['codeForm'] = array( 1, 2 );
자료인용 : http://www.casternet.com/spamfree/zmb/view.php?bd=manual&no=7
배포된 프로그램의 index.php 파일 안에 필요한 모든 코드가 들어 있습니다만, 초보자분들을 위해서 설명하겠습니다.
글쓰기 페이지 + 입력 처리 페이지
적용을 위해서는 2개의 파일을 수정해야 합니다.
첫째, 글쓰기 페이지 (예: write.php)
둘째, 입력 처리 페이지 (예: write_ok.php)
글쓰기 페이지'에서는 스팸차단코드 이미지와 입력폼을 출력해 주어야 하고,
입력 처리 페이지'에서는 입력된 스팸차단코드를 검증해야 하겠지요.
따라서, 아래와 같이 2개의 파일을 찾아 적당한 부분에 삽입하면 됩니다.
1. zmSpamFree 폴더를 업로드합니다.
서버 상단 폴더에 zmSpamFree 폴더로 업로드 하는것이 액박 나올 확률(?)을 낮출수 있습니다.
다른 폴더에 업로드시 액박 나오는 현상이 최근에 작업하는 과정에서 확인되었습니다. ( 2014-10-04 )
zmSpamFree
├ Fonts
├ Log <== 폴더 생성후 퍼미션은 707 이상으로 변경
├ index.php <== 테스트 파일... 정상으로 코드가 보여야 함
├ LICENSE
├ uninstall.php
├ zmspamfree.js
├ zmSpamFree.php
└ zsfCfg.php
2. 글쓰기 페이지 (예: write.php)
글쓰기 페이지에 아래와 같은 코드를 삽입합니다.
<a href="#" onclick="document.getElementById('zsfImg').src='/zmSpamFree/zmSpamFree.php?re&zsfimg=' + new Date().getTime(); return false;">
<img src="/zmSpamFree/zmSpamFree.php?zsfimg=<?php echo time();?>" id="zsfImg" alt="보안코드가 안 보이시면 클릭하세요" border="0" style="vertical-align:middle;" /></a>
<input type="text" size="8" maxlength="10" name="zsfCode" id="zsfCode" />옆에 보이는 문제의 답을 입력해주세요
코드에서 빨간색 부분은 본인 서버의 주소에 맞게 바꿔야 합니다.
예) https://www.happyjung.com/bbs 또는 /bbs
보안코드가 보이지 않을 경우 Log 폴더의 퍼미션을 707 로 변경합니다.
3. 입력 처리 페이지 (예: write_ok.php)
입력처리 페이지에 아래와 같은 코드를 삽입합니다.
(빨간색 부분은 본인 서버의 주소에 맞게 수정 예: ../bbs/ 또는 ../ 또는 ./ )
// 지엠스팸프리 검사
include "../zmSpamFree/zmSpamFree.php"; // 입력페이지에서 zmSpamFree 경로체크
if ( !zsfCheck( $_POST['zsfCode'] ) ) {
//echo '스팸차단코드가 틀렸습니다.';
echo "<script type='text/javascript'>";
echo " alert('스팸차단코드가 틀렸습니다.');";
echo " history.back();";
echo "</script>";
exit;
}
숫자 네 자리(예: 4591), 또는 영문(예: ADSF) 등은 더 이상 스팸방지기능을 할 수 없다고 판단됩니다.
하지만, 아래와 같은 스팸방지 문제 종류들은 여전히 제 역할을 할 것으로 기대합니다.
1: '1234 와 5678 중 큰 수는?'
2: '1234 와 5678 중 작은 수는?'
3: '83 더하기 5는?'
4: '94 빼기 3은?'
이러한 문제 설정은 지엠스팸프리의 환경설정 파일인 zsfCfg.php 를 조금만 고치시면 쉽게 바꿀 수 있습니다.
해당 파일의 약 41번째 줄의 $zsfCfg['codeForm']의 값을 아래와 같이 고치세요.
$zsfCfg['codeForm'] = array( 1, 2 );
자료인용 : http://www.casternet.com/spamfree/zmb/view.php?bd=manual&no=7
댓글목록
등록된 댓글이 없습니다.