728x90

회원가입시 필요한 member Class 함수다.

적용하는 사이트에 따라 칼럼(필드)가 추가로 있기도 하고 없을 수도 있는 걸 고려한 회원 등록, 회원 정보 수정 기능이 포함되어 있다.

패스워드 저장방식은 원하는 걸로 수정하면 된다.


 <?php
class MemberClass {
    //회원 신규 입력
    function MemberRegister($arr){
        date_default_timezone_set('Asia/Seoul');
        $rs=$this->MemberIDCheck($arr['idx'],$arr['userID']); //아이디중복검사
        if($rs<0){ //아이디 중복
            return -1;
            exit;
        } else if($rs==1){ //아이디 입력가능
            $sql="insert into member (idx,userID,passwd,userNM,telNO,mobileNO,email,Cate1,Cate2,smart,";
            if(isset($arr['positionNM']))
                $sql.="positionNM,";
            $sql.="allowLogin,regdate) values(NULL,";
            $sql.="'".$arr['userID']."',";
            $sql.="md5('".substr($arr['mobileNO'],-4)."'),";
            $sql.="'".$arr['userNM']."',";
            $sql.="'".$this->SplitRemove($arr['telNO'])."',";
            $sql.="'".$this->SplitRemove($arr['mobileNO'])."',";
            $sql.="'".$arr['email']."',";
            $sql.="'".$arr['Cate1']."',";
            $sql.="'".$arr['Cate2']."',";
            $sql.="'".$arr['smart']."',";
            if(isset($arr['positionNM'])) // 변수가 있으면 추가하라
                $sql.="'".$arr['positionNM']."',";
            $sql.="'".$arr['allowLogin']."',";
            $sql.="'".date("Ymd")."'"; // 등록일자
            if($result=mysql_query($sql)){
                return mysql_insert_id();
            } else {
                return $sql;
            }

        } else {//알수없는 Db오류
            return $sql;
        }
    }

    //회원정보 수정
    function MemberModify($arr){
        global $db;
        date_default_timezone_set('Asia/Seoul');

        $rs=$this->MemberIDCheck($arr['idx'],$arr['userID']);
        if($rs<0){ //아이디 중복
            return -1;
            exit;
        } else if($rs==1){ //아이디 입력가능
            $sql="update member set ";
            $sql.="userID='".$arr['userID']."',";
            if(isset($arr['passwd'])){
                $sql.="passwd=md5('".$arr['passwd']."'),";
            }
            $sql.="userNM='".$arr['userNM']."',";
            $sql.="telNO='".$this->SplitRemove($arr['telNO'])."',";
            $sql.="mobileNO='".$this->SplitRemove($arr['mobileNO'])."',";
            $sql.="email='".$arr['email']."',";
            $sql.="Cate1='".$arr['Cate1']."',";
            $sql.="Cate2='".$arr['Cate2']."',";
            $sql.="smart='".$arr['smart']."',";
            if(isset($arr['positionNM'])){
                $sql.="positionNM='".$arr['positionNM']."',";  
            }
            if(isset($arr['allowLogin'])){
                $sql.="allowLogin='".$arr['allowLogin']."',";
            }
            if(isset($arr['hidden'])){
                $sql.="hidden='".$arr['hidden']."',";
            }
            $sql.="regdate='".date("Ymd")."'"; // 수정일자
            $sql.=" where idx=".$arr['idx'];
            if($result=mysql_query($sql)){
                return $arr['idx'];
            } else {
                return $sql;
            }

        } else {//알수없는 Db오류
            return 0;
        }

    } //end function


    //회원정보 삭제
    function
MemberDelete($idx){
        global $db;
        $sql="delete from member where idx=".$idx;
        if($result=mysql_query($sql)){
            return 1;
        } else {
            return $sql;
        }
    }

    //변경전 로그인ID 유일성체크
    function MemberIDCheck($idx,$userID){
        global $db;
        $sql="select idx,count(*) from member where userID='".$userID."'";
        if($result=mysql_query($sql)){
            $row=mysql_fetch_row($result);
            if($row[1]==1){ //id존재
                if($row[0]==$idx){ // id변경없음
                    return 1;
                } else { //id변경시도, 다른 id존재, 변경불가
                    return -1;
                }
            } else { //변경시도, 다른id없음, 변경가능
                return 1;
            }
        } else {
            return 0;
        }
    }

}
?>


사용법

<?php
require_once 'memberClass.php';
$m = new MemberClass(); // 객체 생성

// 회원가입시 입력 form 에서 넘겨받은 배열 정보를 넣는다.
$rs = $m->MemberRegister($_POST);

// 회원 정보 수정시 입력 form 에서 넘겨받은 배열 정보를 넣는다.
$rs = $m->MemberModify($_POST);
echo $rs; // Ajax 통신인 경우 결과값을 반환하여 데이터 수정 성공/실패 팝업 메시지를 띄운다.
?>

블로그 이미지

Link2Me

,