Web/PHP

[self] 클래스 데이터체크

aucd29 2013. 9. 26. 21:38
<?
class dataCheck
{
    var $objCommon;
    
    function dataCheck()
    {
        $this->objCommon = & $GLOBALS[objCommon];
    }
    
    # 주민번호 체크
    function juminNum($szFstNum, $szLstNum)
    {
        $szJuminNum = $szFstNum.$szLstNum;
        $szLastNum = substr($szJuminNum,12,1);
        $szAddNum = "234567892345";
        $nNumLength = strlen($szJuminNum);
        $nTotSum    = 0;
        $rtn        = TRUE;

        if (13 != $nNumLength)
        {
            $rtn = FALSE;
        }
        else
        {
            for($i=0; $i < 12; $i++)
            {
                $nTotSum = $nTotSum + (substr($szJuminNum,$i,1) * substr($szAddNum,$i,1));
            }

            $nChkResult = 11 - ($nTotSum % 11);

            if(10 == $nChkResult)
            {
                $nChkResult = 0;
            }
            else if(11 == $nChkResult)
            {
                $nChkResult = 1;
            }

            if($nChkResult != $szLastNum)
            {
                $rtn = FALSE;
            }
        }

        return $rtn;
    }

    # 메일체크
    function mailChk($szChkMail)
    {
        $szChkMail = trim($szChkMail);
        $rtn = eregi("(^[_0-9a-z]+(\.[_0-9a-z]+)*@[0-9a-z]+(\.[0-9a-z]+)*$)",$szChkMail);
        if( !$rtn ) $this->objCommon->msg('메일이 잘못되있습니다.');
    }

    # url 체크
    function urlChk($szChkUrl)
    {
        $szChkUrl = trim($szChkUrl);
        $rtn = eregi("^http://([a-z0-9\_\-\./~@?=&-\#{5,}]+)",$szChkUrl);
        if( !$rtn ) $this->objCommon->msg('잘못된 URL 입니다.');
    }

    # 숫자 체크
    function numChk($szStr, $name)
    {
        $rtn = eregi("^[0-9]+$",$szStr);
        if( !$rtn ) $this->objCommon->msg($name.'은 숫자가 아닙니다.');
    }

    # 숫자,영문체크
    function strChk($szStr, $name)
    {
        $rtn = eregi("^[0-9a-z]+$",$szStr);
        if( !$rtn ) $this->objCommon->msg($name.'은 영문/숫자조합만 가능합니다.');
    }

    # 한글인지검사
    function strKrChk( $str, $name )
    {
        $rtn = eregi("^[a-z]+$",$str);
        if( $rtn ) $this->objCommon->msg( $name.'은 한글만 가능합니다');
    }

    # 공백검사
    function isBlank( $str, $name )
    {
        if(!eregi("([^[:space:]]+)", $str) || ereg("([[:space:]]+)",$str))
            $this->objCommon->msg( $name.'에 공백문자열이 있으면 안된다.');
    }

    # 최소 최대 체크
    function sizeChk( $nSmall, $nLarge, $str, $name )
    {
        if(eregi("[[:alnum:]+]{ $nSmall, $nLarge }",$str))
        {
            $this->objCommon->msg( "$name 은 최소 $nSmall 최대 $nLarge 자여야합니다" );
        }
    }

    # 사업자번호 체크
    function OfficeNumChk($szFstNum,$szScdNum,$szLastNum)
    {
        $szOfficeNum    = $szFstNum.$szScdNum.$szLastNum;
        $szLastNum        = substr($szOfficeNum,9,1);                            
        $szAddNum        = "13713713";                                            
        $nNumLength        = strlen($szOfficeNum);
        $nTotNum        = 0;
        $rtn            = TRUE;

        if($nNumLength != 10) {
            $rtn = FALSE;
        }
        
        for($i=0; $i < 8;$i++) {
            $nTotSum = $nTotSum + (substr($szOfficeNum,$i,1) * substr($szAddNum,$i,1));    
        }

        $szNineValue    = (string)(substr($szOfficeNum,8,1) * 5);
        $szNineLen        = strlen($szNineValue);

        if(2 > $szNineLen) {
            $nTotSum    = $nTotSum + $szNineValue[0];
        } else{
            $nTotSum    = $nTotSum + $szNineValue[0] + $szNineValue[1];
        }

        $nTotSum    = (string)($nTotSum);
        $nTotSumLen    = strlen($nTotSum);

        $nChkResult    = 10 - ($nTotSum[$nTotSumLen - 1]);

        if($nChkResult != $szLastNum) {
            $rtn = FALSE;
        }

        return $rtn;
    }
}

if( !$objDataChk )
{
    $objDataChk = & new dataCheck;
}
?>