글쓰기나 회원가입시 무단 입력방지를 위한 간단한 함수 입니다.


 

사용방법은 다음과 같습니다.

 

 <?php

 // get_singup.php
 require_once(dirname(__FILE__) . '/session.class.php');
 require_once(dirname(__FILE__) . '/gd.secode.php');

 $makeRand = new setsession("gd_sign");

 // 7 글자 랜덤
 $makeRand->put_session("gd_second", makeRand(7));
 $makeRand->session();

 gdSecode($makeRand->get_session("gd_second"));
 ?>


 // write.php

 <img src='get_singup.php'><input type='text' name='singup'>

 

 <?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(19));
    
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(19));
    
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($png255255255);
    
$b ImageColorAllocate($png000);

    for (
$i=0$i<$W$i+=11)
    {
        
imageline($png$i0$i$H$b);
    }

    for (
$i=0$i<$H$i+=11)
    {
        
imageline($png0$i$W$i$b);
    }
    
ImageString($png6911$makeRand$b);
    
header("Content-type: image/png");
    
ImagePng($png);
    
ImageDestroy($png);
 }
 ?>


소스 파일이 필요하다면 http://ebook.habonyphp.com/40 에서 받으세요.