간단한 캡차파일 만들기 captcha

by 조쉬 posted Jan 12, 2023
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

구글API를 이용하여 reCaptcha 캡차를 이용하면 편리하지만 간단히 만드는 방법을 알아보자

 

 

폰트는 tving 에서 다운받아요

http://tvn10festival.tving.com/playground/tvn10font

<?
session_start();

// 세션변수 생성
function set_session($session_name, $value)
{
    if (PHP_VERSION < '5.3.0')
        session_register($session_name);
    $$session_name = $_SESSION[$session_name] = $value;
}
//이미지 크기
$img = imagecreate(130,60);

//캡챠 폰트 크기
$size = 46;
//캡챠 폰트 기울기
$angle = 0;
//캡챠 폰트 x,y위치
$x = 5;
$y = 50;
//이미지의 바탕화면은 흰색
$background = imagefill($img,0,0,imagecolorallocatealpha($img,255, 255, 255, 100));
//폰트 색상
$text_color = imagecolorallocate($img, 233, 14, 91);
//폰트 위치
$font = 'kcaptcha/fonts/tvn_bold.ttf';

//캡챠 텍스트
$str = substr(md5(rand(1,10000)),0,5);
//가입 시 캡챠 텍스트 확인을 위해 session에 담는다.
//$_SESSION['captchastr'] = $str;
set_session("captchastr",$str);

//글자를 이미지로 만들기
imagettftext($img,$size,$angle,$x,$y,$text_color,$font,$str);

Header("Content-type: image/jpeg");
imagejpeg($img,null,100);
imagedestroy($img);
?>
 

set_session("captchastr") 로 저장된 값을 입력한 값과 비교하여 스팸방지 캡차코드를 구연할 수 있다.

 

html 내용

<div class="f-div"><label>스팸방지코드</label></div>
<div class="l-div"><img src="/captcha.php" />
<input type="text" size="8" maxlength="10" name="spamcaptchacode"  placeholder="스팸방지코드를 입력하세요" />
</div>