CI 묻고 답하기

제목 자동가입 방지 문자 이미지 생성관련
글쓴이 니로 작성시각 2016/05/27 09:44:06
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14568   RSS

컨트롤러에 captcha.php를 추가하여..

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Captcha extends CI_Controller {

	public function __construct()
	{
		$fontname = "MALGUN.TTF"; // php 파일과 같은 디렉토리거나, 경로까지 설정해야함
		$width = "50";
		$height = "50";
	}
 	// 회원 가입시 입력하는 자동가입방지 문자열 이미지 만들기
	public function index()
	{
		
		$text = $this->randText(7);
		
		$_SESSION['charcheck'] = $text; //문자열 세션저장
				
		$fontsize = 16;
		
		$bound 		= ImageTTFBBox($fontsize,0,$fontname, $text);
		$imgWidth 	= $bound[2]+20;
		$imgHeight 	= $fontsize*3.0;
		 
		$im			= ImageCreate($imgWidth,$imgHeight);
		$white 		= ImageColorAllocate ($im, 255, 255, 255);
		$black 		= ImageColorAllocate ($im, 0, 0, 0);
		
		ImageTTFText($im,$fontsize,rand()%20, 10, $imgHeight-10, $black, $fontname, $text);
		
		header ("Content-type: image/png");
		ImagePNG($im);
		ImageDestroy($im);
	}
	function randText($strSize)
	{
		$str = "";
		for ($i=0; $i<$strSize; $i++) 
		{
			$num = rand() % 52;
			if ($num < 26) $str .= chr($num + 65); // 대문자	
			else $str .= chr($num + 97 - 26); //소문자 출력
		}
		
		return $str;
	}

	function euckr2utf8($text) 
	{ 	
		return stripslashes(iconv("EUC-KR","UTF-8",$text));
	}
}

 

이런 소스를 넣었어요 도메인/capcha 로 들어가면 문자열 이미지가 하나뜨고있는데요.

 

view에서 이파일을 실행할수 있을까요...?

게시판입력 페이지에 보안문자 입력하는곳에 넣고싶은데.. 방법을 모르겟네요

 다음글 왕초보가 고수님들께 질문드립니다. (17)
 이전글 CI controller에서 curl을 쓸 수 있는 방... (4)

댓글

이현재 / 2016/05/27 11:10:05 / 추천 0
이미지를 서버에 저장해서 그 주소로 보여줘도 되고, 이미지인 상태의 데이터를 뷰로 보낸 후 뷰에 표기해줘도 되겠죠. 제가 만들어서 쓸 때는 로그인 후 자동입력 방지가 필요했던지라 사용자 별로 하나씩 저장 후 불러왔습니다.
한대승(불의회상) / 2016/05/27 11:48:17 / 추천 0
헬퍼나 라이브러리로 만들어서 사용하시면 됩니다.
니로 / 2016/05/27 14:45:54 / 추천 0
근데 궁금한게.. 컨트롤에 저렇게 해놓고 세션생성을 하는데.. 세션이 만들어지지가 않는데 이유가 뭔지 모르겟어요...