TIP게시판

제목 CAPTCHA 한글로 사용하기
글쓴이 박순철 작성시각 2013/04/08 12:28:32
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 17100   RSS
개인적인 개념상실(?)로 인하여, 엄청 삽질 한 부분이라서 올려봅니다.

알고 보면 간단한건데,  그걸 알기가 참 쉽지가 않네요.

복사&붙이기가 너무 익숙해져서, 소스 내용 분석을 생각못한게 삽질 원인이였구요.
(뭐.. 봐도 잘 모르지만 ㅎㅎ)

$vals = array(
    'word'       => '가',
    'img_path'  => './captcha/',
    'img_url'  => 'http://도메인명/captcha',
    'font_path'  => './captcha/fonts/2.ttf',
    'font_size'  => 20,
    'img_width'  => '180',
    'img_height' => '50',
    'expiration' => 7200
);

영문,숫자는 잘 나오는데 한글만 깨지는 문제였습니다.

인코딩 문제로 생각해서  iconv,  mb_convert_encoding 로 삽질을;;;;;


먼저 해결 방법은

1. 폰트가 한글지원 폰트여야 합니다.  (네이버 /  다음 폰트등... )
2. system/helper/captcha helper 파일을 보면, 아래 부분이 있는데
    substr 함수 땜시 한글이 깨져 나옵니다.
imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1));

검색해 보니 CI용 라이브러리를 만드신 분들이 있습니다. 

그걸 사용하셔도 되구요.


현재는 Google-TTS 까지 붙어 났는데.. 이거 크롬 하고 데스크탑용 사파리 밖에 안되네요;;;



끝으로 힌트 주신 웅파님께 감사를~~ ^^

 다음글 CI에서 회원가입 기능을 구현하는 방법과 bcrypt로... (3)
 이전글 Sublime Text에서 Emmet를 사용하기 (1)

댓글

변종원(웅파) / 2013/04/09 13:46:12 / 추천 0
감사합니다. 저도 처음엔 단순히 한글폰트 문제인줄 알았는데 
소스 열어보니 gd함수에서의 처리였었네요. ^^