php
PHP - 글쓰기 무단 입력방지 Signup 만들기
글쓰기나 회원가입시 무단 입력방지를 위한 간단한 함수 입니다.
먼저 아래 소스를 복사해서 gd_secode.php 파일로 만듭니다. 랜덤 이미지를 만들기 위해 필요한 함수입니다.
그런 다음에 아래 소스를 get_image.php 파일로 만듭니다. 이 파일은 이미지 파일로 사용할려고 합니다.
사용 방법은 다음과 같습니다.
먼저 아래 소스를 복사해서 gd_secode.php 파일로 만듭니다. 랜덤 이미지를 만들기 위해 필요한 함수입니다.
<?php
/*
************************* srand make *************************
*/
function makeRand($len=6)
{
$len = preg_replace ("|[^0-9]|", "", $len);
if($len < 6)
{
$len = 6;
}
srand((float) microtime() * 10000000);
$schar = array_rand($specialchar = array('A','Q','G','L','H'));
$rand_keys = array_merge(range('A', 'Z'), range('z', 'a'), range(1, 9));
shuffle($rand_keys);
$data = false;
for($i=0; $i<$len; $i++)
{
if($i === $schar)
{
$data .= $specialchar[$schar];
}
else
{
$data .= $rand_keys[$i];
}
}
return $data;
}
function numRand($len=4)
{
$len = preg_replace ("|[^0-9]|", "", $len);
if($len < 4)
{
$len = 4;
}
srand((float) microtime() * 10000000);
$rand_keys = array_merge(range('1', '4'), range('5', '9'), range(1, 9));
shuffle($rand_keys);
$data = false;
for($i=0; $i<$len; $i++)
{
$data .= $rand_keys[$i];
}
return $data;
}
function gdSecode($makeRand, $size=7)
{
$W = 78+(($size-7)*11);
$H = 34;
$png = ImageCreate($W, $H);
$w = ImageColorAllocate($png, 255, 255, 255);
$b = ImageColorAllocate($png, 0, 0, 0);
for ($i=0; $i<$W; $i+=11)
{
imageline($png, $i, 0, $i, $H, $b);
}
for ($i=0; $i<$H; $i+=11)
{
imageline($png, 0, $i, $W, $i, $b);
}
ImageString($png, 6, 9, 11, $makeRand, $b);
header("Content-type: image/png");
ImagePng($png);
ImageDestroy($png);
}
?>
그런 다음에 아래 소스를 get_image.php 파일로 만듭니다. 이 파일은 이미지 파일로 사용할려고 합니다.
<?php
@session_start();
require_once(dirname(__FILE__) . '/gd_secode.php');
gdSecode($_SESSION["gd_second"]);
?>
사용 방법은 다음과 같습니다.
<?php
require_once(dirname(__FILE__) . '/gd_secode.php');
@session_start();
$_SESSION["gd_second"] = makeRand(7);
?>
<img src='get_image.php'>
<input type='text' name='singup'>
0 댓글