주요 특징

  • 영문, 숫자, 특수 문자 외 추가 가능.
  • 문자열 길이 조정 가능.
  • 유동 입력 폼.
 

Captcha 에서 필요한 library 는 다음과 같습니다.

  1. captcha.php
    captcha 관련 프로그램입니다.
  2. /fonts
    TTF 폰트 폴더. 선택 사항. 폰트가 없으면 내부 폰트를 사용합니다.
    데비안 폰트 무료 다운로드

설치 순서는 다음과 같습니다.

기본적으로 crazy 스크립트는 library 에 속한 파일 외에는 수정이 자유롭습니다.
물론 필요에 의해서 수정은 되나 차후 업그레이드가 필요한 때에는 library 파일만을 업데이트하기 때문에 가급적 수정을 하지 않거나 수정한 부분이 있다면 따로 표시해 주시기 바랍니다.

다운로드 받은 파일을 서버로 업로드하면 설치는 완료됩니다.


환경 설정

공통 상수

  • HABONYPHP_DIRNAME
    						
    Captcha 가 설치된 경로. 끝에 반드시 / 를 입력해 주세요.
    
    기본값: ./

사용 가능한 상수

  • PHP_CAPTCHA_STR_LENGTH
    						
    Captcha 문자열 길이.
    
    기본값: 6
  • PHP_CAPTCHA_SESSION_INPUT_NAME
    						
    Captcha INPUT 이름.
    
    기본값: hash('sha1', $_SERVER['SERVER_NAME'] . date("Y-m-d"))
  • PHP_CAPTCHA_SESSION_NAME
    						
    Captcha 세션 이름.
    
    기본값: hash('sha1', "PHP_CAPTCHA_NAME")
  • PHP_CAPTCHA_SPECIAL_CHARACTERS
    					
    Captcha 추가 문자.
    기본 값: @#$%&+=?
  • New PHP_CAPTCHA_TTF_FONTS
    					
    Captcha TTF 폰트 이름.
    기본 값: 
    
    ex. batang.ttf

PHP_CAPTCHA_CreateImage( [width] [, height] )

    인수:
  • width: 이미지 가로 크기. 기본 값: 200
  • height: 이미지 세로 크기. 기본 값: 45
						
<?php
// ex. getimage.php?width=300&height=50

if(!defined("HABONYPHP_DIRNAME"))
{
	define("HABONYPHP_DIRNAME", "./");
}
require_once(HABONYPHP_DIRNAME . 'library/captcha.php');

if(false !== PHP_CAPTCHA_CreateSession())
{
	PHP_CAPTCHA_CreateImage($_GET['width'], $_GET['height']);
}
?>

PHP_CAPTCHA_INPUT_Confirmation( )

						
<?php
define("HABONYPHP_DIRNAME", "./");

require_once(HABONYPHP_DIRNAME . 'library/captcha.php');


if($_SERVER['REQUEST_METHOD'] === "POST")
{
	if(PHP_CAPTCHA_INPUT_Confirmation() === false)
	{
		$error = "<p style='color:red;'><b>입력한 인증 코드가 정확하지 않습니다.</b></p>";
	}
	else
	{
		$error = "<p style='color:blue;'>인증 코드가 일치합니다!</p>";
	}
}
?>

Example #1

페이지 새로고침 없이 이미지만 refresh 하는 간단한 예제입니다.

						

CAPTCHA(refresh)

						
<?php
define("HABONYPHP_DIRNAME", "./");

require_once(HABONYPHP_DIRNAME . 'library/captcha.php');


if($_SERVER['REQUEST_METHOD'] === "POST")
{
	if(PHP_CAPTCHA_INPUT_Confirmation() === false)
	{
		$error = "<p style='color:red;'><b>입력한 인증 코드가 정확하지 않습니다.</b></p>";
	}
	else
	{
		$error = "<p style='color:blue;'>인증 코드가 일치합니다!</p>";
	}
}
?>
<h2>Habonyphp.com: wwwCrazy Captcha Example</h2>
<?php
	print_r($error);
?>
<form method="POST" action="">
<fieldset>
<legend>wwwCrazy-Captcha Code:</legend>
<p>
  <img id="captcha" src="getimage.php" width="140" border="1" alt="CAPTCHA">
  <small>(<a href="#" onclick="document.getElementById('captcha').src = 'getimage.php?' + Math.random(); return false;">refresh</a>)</small>
</p>
<input id="captcha_code" type="text" name="<?php echo PHP_CAPTCHA_SESSION_INPUT_NAME; ?>" size="6">
<input type="submit" value="Send" class="submit" />
</fieldset>  
</form>

Example #2

Captcha 문자를 6 이상 지정해야 할 경우 이미지 크기를 강제적으로 늘려서 사용합니다.

						
<?php
define("HABONYPHP_DIRNAME", "./");

require_once(HABONYPHP_DIRNAME . 'library/captcha.php');


if($_SERVER['REQUEST_METHOD'] === "POST")
{
	if(PHP_CAPTCHA_INPUT_Confirmation() === false)
	{
		$error = "<p style='color:red;'><b>입력한 인증 코드가 정확하지 않습니다.</b></p>";
	}
	else
	{
		$error = "<p style='color:blue;'>인증 코드가 일치합니다!</p>";
	}
}
?>
<h2>Habonyphp.com: wwwCrazy Captcha Example</h2>
<?php
	print_r($error);
?>
<form method="POST" action="">
<fieldset>
<legend>wwwCrazy-Captcha Code:</legend>
<p>
  <img id="captcha" src="getimage.php?width=300&height=50" alt="CAPTCHA">
</p>
<input id="captcha_code" type="text" name="<?php echo PHP_CAPTCHA_SESSION_INPUT_NAME; ?>" size="6">
<input type="submit" value="Send" class="submit" />
</fieldset>  
</form>