DB = $db; } /***** * 세션정보로서 관리자 권한을 가지고 있는지 확인 한다. * "user_id" 세션값이 존재하고 "user_level" 세션값이 지정한 값보다 같거나 작은지 확인한다. *****/ function check_admin($info){ return ($info['user_no'] != null && $info['user_id'] != null && $info['user_level'] <= $this->user_admin_level)? true:false; } /***** * 세션정보로서 직원 권한을 가지고 있는지 확인 한다. * "user_id" 세션값이 존재하고 "user_level" 세션값이 지정한 값보다 같거나 작은지 확인한다. *****/ function check_staff($info){ return ($info['user_no'] != null && $info['user_id'] != null && $info['user_level'] <= $this->user_manager_level)? true:false; } /***** * 세션정보로서 정회원 권한을 가지고 있는지 확인 한다. * "user_id" 세션값이 존재하고 "user_level" 세션값이 지정한 값보다 같거나 작은지 확인한다. *****/ function check_regular($info){ return ($info['user_no'] != null && $info['user_id'] != null && $info['user_level'] <= $this->user_regular_level)? true:false; } /***** * 세션정보로서 로그인 상태인지 확인 한다. * "user_id" 세션값이 존재하고 "user_level" 세션값이 지정한 값보다 작은지 확인한다. *****/ function check_login($info){ return ($info['user_no'] != null && $info['user_id'] != null && $info['user_level'] <= $this->user_basic_level)? true:false; } /***** * 아이디 중복체크 * 기본 검사는 javascript 와 php 에서 동시에 처리할 수 도 있으니 기본 검사 방법이 변경이 된다면 두군대를 수정하여야 한다. *****/ function check_dupleid($str){ // Rule - 아이디는 4~10 자리 이며 첫자리에는 숫자가 올수없고 영숫자 조합이고 소문자만 사용한다. //if(ereg('^[a-z]{1}[a-z0-9]{3,11}$', $str)){ //if(preg_match(_REGEXP, $str)){ if($this->DB->getOne("select count(*) from ".TABLE_USER." where user_id = '{$str}'") > 0){ // 중복 아이디일 경우 return array("code" => "D","user_id" => $str); }else{ // 중복 아이디가 아닐경우 return array("code" => "A","user_id" => $str); } //}else{ // 형식에 맞지 않을경우 // return array("code" => "F","user_id" => ""); //} } /***** * 입력정보를 통해 회원 여부를 확인한다. *****/ function check_login_info($argu){ $pwd1=substr(md5($argu["user_pwd"]),0,20); $pwd2=substr(md5($argu["user_pwd"]),-20); $pwd=$pwd1.$pwd2; $query = " select u.user_no, u.user_id, u.user_name, u.user_level, u.user_withdrawal from ".TABLE_USER." u where u.user_id = /* 1 */ ? and u.user_pwd = /* 2 */ ? "; $row = $this->DB->getRow($query,array( /* 1 */ $argu['user_id'], /* 2 */ $pwd),DB_FETCHMODE_ASSOC); if (DB::isError($row)) { debug($row);exit; return; }else{ return $row; } } /***** * 세션에 저장된 상태를 반환한다. *****/ function get_status(){ return array_filter(array( 'user_no' => $_SESSION['user_no'], 'user_id' => $_SESSION['user_id'], 'user_name' => $_SESSION['user_name'], 'user_level' => $_SESSION['user_level'] ),'delete_null_array'); } /***** * 회원 내용을 반환한다. *****/ function get_user_view($user_no){ $query = " select * from ".TABLE_USER." where user_no = '{$user_no}' "; $res = $this->DB->query($query); if (DB::isError($res)) { debug($res); return; } $row = $res->fetchRow(DB_FETCHMODE_ASSOC); return $row; } function get_total(){ $query = "select found_rows()"; $total = $this->DB->getOne($query); if (DB::isError($total)) { die($total->getMessage()); } return $total; } /***** * 로그인 상태가 될수 있도록 세션을 생성한다. *****/ function set_login_session($data){ $_SESSION['user_no'] = $data['user_no']; $_SESSION['user_id'] = $data['user_id']; $_SESSION['user_name'] = $data['user_name']; $_SESSION['user_level'] = $data['user_level']; } /***** * 로그인 정보를 업데이트한다. *****/ function set_login_update($data){ $query=" update ".TABLE_USER." set user_cnt=user_cnt+1, user_lastlogin=now() where user_no='".$data['user_no']."'"; $result = $this->DB->query($query); if (DB::isError($result)) { //debug($this->DB); die($result->getMessage()); } } /***** * 회원을 등록한다. *****/ function set_user_insert($argu){ global $_adminpage; global $_lan_alert; // 변수 설정 $argu["user_hp"]=$argu["user_hp1"]."-".$argu["user_hp2"]."-".$argu["user_hp3"]; $argu["user_level"]=($_adminpage) ? $argu["user_level"] : $this->user_basic_level; $argu["user_id"]=($_adminpage) ? $argu["user_id"] : $argu["user_email"]; $argu['return_url'] = ($argu['return_url']) ? urldecode($argu['return_url']) : ""; // 아이디 중복 체크 $id_chk=$this->check_dupleid($argu["user_id"]); if($id_chk['code'] == "D"){ go_url("","이미 가입된 아이디입니다."); exit; }else{ /// 빠진 사항 체크 if(strlen($argu["user_id"])<4){ go_url("","아이디를 입력하지 않으셨거나 형식에 맞지 않습니다."); exit; } if(strlen($argu["user_pwd"])<4){ go_url("","비밀번호를 입력하지 않으셨거나 형식에 맞지 않습니다."); exit; } if(strlen($argu["user_name"])<2){ go_url("","성명이 입력되지 않았습니다."); exit; } $data = array( "user_id" => $argu["user_id"], "user_name" => $argu["user_name"], "user_hp" => $argu["user_hp"], "user_email" => $argu["user_email"], "user_emaillist" => $argu["user_emaillist"], "user_level" => $argu["user_level"], "user_memo" => $argu["user_memo"], "user_withdrawal" => "N", "user_withdrawal_date" => null, "user_withdrawal_case" => null, "user_withdrawal_memo" => null, "user_ip" => $_SERVER["REMOTE_ADDR"], "user_regdate" => _NowTime, "user_cnt" => 0, "user_lastlogin" => null, ); // 패스워드 암호화 if(strlen($argu["user_pwd"])>3){ $pwd1=substr(md5($argu["user_pwd"]),0,20); $pwd2=substr(md5($argu["user_pwd"]),-20); $pwd=$pwd1.$pwd2; } $data = array_merge($data, array("user_pwd" => $pwd)); $sth = $this->DB->autoPrepare(TABLE_USER, array_keys($data), DB_AUTOQUERY_INSERT); $res = $this->DB->execute($sth, array_values($data)); if (DB::isError($res)) { go_url("","회원 등록이 되지 않았습니다.\\n[".$res->getMessage()."]"); exit; } } return $argu['return_url']; } /***** * 회원 리스트를 반환한다. *****/ function get_user_list($argu,&$total,$limit = true){ /// 검색 쿼리 $addwhere = "(1=1)"; if(strlen($argu['keyword']>0)){ $addwhere .= " and {$argu['s_type']} like '%{$argu['keyword']}%' "; } $query = " select count(*) from ".TABLE_USER." where $addwhere "; $total = $this->DB->getOne($query); if (DB::isError($list)) { die($list->getMessage()); } $query = " select * from ".TABLE_USER." where $addwhere order by user_regdate desc "; if($limit) $query .= " limit ".($argu['p']-1)*$this->_LIST_NUM.",".$this->_LIST_NUM; $list =& $this->DB->getAll($query, array(), DB_FETCHMODE_ASSOC); if (DB::isError($list)) { //debug($this->DB); die($list->getMessage()); } return $list; } /***** * 회원 내용을 Update 한다. * 회원 탈퇴도 Level 만 탈퇴 등급으로 조정하는것으로 처리 하므로 Update Function 에서 처리한다. *****/ function set_user_update($argu){ global $_adminpage; if($argu["mode"]=="DELETE_ACTION"){ if($_SESSION['user_level']==1){ $argu["user_withdrawal_case"]="관리자 탈퇴 처리"; $argu["user_withdrawal_memo"]="관리자 탈퇴 처리"; } $data = array( "user_level" => $this->user_withdrawal_level, "user_withdrawal" => "Y", "user_withdrawal_date" => _NowTime, "user_withdrawal_case" => $argu["user_withdrawal_case"], "user_withdrawal_memo" => $argu["user_withdrawal_memo"] ); }else{ // 변수 설정 $argu["user_hp"]=$argu["user_hp1"]."-".$argu["user_hp2"]."-".$argu["user_hp3"]; $argu["user_level"]=($_adminpage) ? $argu["user_level"] : $this->user_basic_level; $data = array( "user_name" => $argu["user_name"], "user_hp" => $argu["user_hp"], "user_email" => $argu["user_email"], "user_emaillist" => $argu["user_emaillist"], ); if($_adminpage){ $data=array_merge($data, array( "user_level" => $argu["user_level"], "user_memo" => $argu["user_memo"] )); if($argu["user_level"]<$this->user_withdrawal_level){ $data=array_merge($data, array( "user_withdrawal" => "N", "user_withdrawal_date" => null, "user_withdrawal_case" => null, "user_withdrawal_memo" => null )); } } // 비밀번호를 입력할 경우 비밀번호를 같이 변경한다. if(strlen($argu["user_pwd"])>3){ $pwd1=substr(md5($argu["user_pwd"]),0,20); $pwd2=substr(md5($argu["user_pwd"]),-20); $pwd=$pwd1.$pwd2; $data=array_merge($data, array( "user_pwd" => $pwd )); } } $result = $this->DB->autoExecute(TABLE_USER, $data, DB_AUTOQUERY_UPDATE, "user_no = '{$argu['user_no']}' "); if (DB::isError($result)) { //debug($this->DB); die($result->getMessage()); } return true; } function check_login_du($argu){ $pwd1=substr(md5($argu["du_pwd"]),0,20); $pwd2=substr(md5($argu["du_pwd"]),-20); $pwd=$pwd1.$pwd2; $query = " select u.du_no, u.du_email, u.du_name, u.du_app from ".TABLE_DU_USER." u where u.du_email = '".$argu['du_email']."' and u.du_pwd = '".$pwd."' "; $row = $this->DB->getRow($query,array(),DB_FETCHMODE_ASSOC); if (DB::isError($row)) { debug($row);exit; return; }else{ return $row; } } function check_dupleid_du($str){ if($this->DB->getOne("select count(*) from ".TABLE_DU_USER." where du_email = '{$str}'") > 0){ // 중복 아이디일 경우 return array("code" => "D","du_email" => $str); }else{ // 중복 아이디가 아닐경우 return array("code" => "A","du_email" => $str); } } function set_login_session_du($data){ $_SESSION['duser_no'] = $data['du_no']; $_SESSION['duser_id'] = $data['du_email']; $_SESSION['duser_name'] = $data['du_name']; //$_SESSION['du_app'] = $data['du_app']; } /***** * 세션에 저장된 상태를 반환한다. *****/ function get_status_du(){ return array_filter(array( 'duser_no' => $_SESSION['duser_no'], 'duser_id' => $_SESSION['duser_id'], 'duser_name' => $_SESSION['duser_name'], ),'delete_null_array'); } function set_du_user_insert($argu){ // 아이디 중복 체크 $du_id_chk=$this->check_dupleid_du($argu["du_email"]); if($du_id_chk['code'] == "D"){ go_url("","This email is already subscribed."); exit; }else{ $data = array( "du_name" => $argu["du_name"], "du_company" => $argu["du_company"], "du_email" => $argu["du_email"], "du_region" => $argu["du_region"], "du_phone_num" => $argu["du_phone_num"], "du_app" => 'N', "du_regdate" => _NowTime, ); // 패스워드 암호화 if(strlen($argu["du_pwd"])>3){ $pwd1=substr(md5($argu["du_pwd"]),0,20); $pwd2=substr(md5($argu["du_pwd"]),-20); $pwd=$pwd1.$pwd2; } $data = array_merge($data, array("du_pwd" => $pwd)); $sth = $this->DB->autoPrepare(TABLE_DU_USER, array_keys($data), DB_AUTOQUERY_INSERT); $res = $this->DB->execute($sth, array_values($data)); if (DB::isError($res)) { go_url("","Has not been registered.\\n[".$res->getMessage()."]"); exit; } } return true; } function set_du_user_update($argu){ $data = array( "du_name" => $argu["du_name"], "du_company" => $argu["du_company"], "du_region" => $argu["du_region"], "du_phone_num" => $argu["du_phone_num"], "du_app" => $argu["du_app"], ); // 비밀번호를 입력할 경우 비밀번호를 같이 변경한다. if(strlen($argu["du_pwd"])>3){ $pwd1=substr(md5($argu["du_pwd"]),0,20); $pwd2=substr(md5($argu["du_pwd"]),-20); $pwd=$pwd1.$pwd2; $data=array_merge($data, array( "du_pwd" => $pwd )); } $result = $this->DB->autoExecute(TABLE_DU_USER, $data, DB_AUTOQUERY_UPDATE, "du_no = '{$argu['du_no']}' "); if (DB::isError($result)) { //debug($this->DB); die($result->getMessage()); } return true; } function set_du_userpwd_update($argu){ // 패스워드 암호화 if(strlen($argu["new_pwd"])>3){ $pwd1=substr(md5($argu["new_pwd"]),0,20); $pwd2=substr(md5($argu["new_pwd"]),-20); $pwd=$pwd1.$pwd2; } $data = array( "du_pwd" => $pwd, ); $result = $this->DB->autoExecute(TABLE_DU_USER, $data, DB_AUTOQUERY_UPDATE, "du_no = '{$argu['du_no']}' "); if (DB::isError($result)) { //debug($this->DB); die($result->getMessage()); } return true; } function set_du_user_delete($du_no){ $query = "DELETE FROM ".TABLE_DU_USER." WHERE du_no = '".$du_no."'"; $res = $this->DB->query($query); if (DB::isError($res)) { go_url("", $res->getMessage()); exit; } return true; } function get_du_user_list($argu,&$total,$limit = true){ /// 검색 쿼리 $addwhere = "(1=1)"; if(strlen($argu['keyword']>0)){ $addwhere .= " and {$argu['s_type']} like '%{$argu['keyword']}%' "; } $query = " select count(*) from ".TABLE_DU_USER." where $addwhere "; $total = $this->DB->getOne($query); if (DB::isError($list)) { die($list->getMessage()); } $query = " select * from ".TABLE_DU_USER." where $addwhere order by du_regdate desc "; if($limit) $query .= " limit ".($argu['p']-1)*$this->_LIST_NUM.",".$this->_LIST_NUM; $list =& $this->DB->getAll($query, array(), DB_FETCHMODE_ASSOC); if (DB::isError($list)) { //debug($this->DB); die($list->getMessage()); } return $list; } function get_du_user_view($du_no){ $query = " select * from ".TABLE_DU_USER." where du_no = '{$du_no}' "; $res = $this->DB->query($query); if (DB::isError($res)) { debug($res); return; } $row = $res->fetchRow(DB_FETCHMODE_ASSOC); return $row; } function get_du_id_search($argu){ // 주민/사업자 등록 번호 암호화 $addwhere = "(du_email = '{$argu['du_email']}') "; $query = " select * from ".TABLE_DU_USER." where $addwhere "; $row = $this->DB->getRow($query,DB_FETCHMODE_ASSOC); if (DB::isError($row)) { //debug($row); die($row->getMessage()); exit; } return $row; } function get_admlog_list($argu,&$total,$limit = true){ global $_DB; $addwhere = " where (1=1) "; /// 검색쿼리 if($argu['Search']){$addwhere .= " and (view like '%{$argu['Search']}%' or history like '%{$argu['Search']}%') "; } if($argu['s_date'] && $argu['e_date']){$addwhere .= " and (regdate between '{$argu['s_date']} 00:00:00' and '{$argu['e_date']} 23:59:59') "; } $query = " select count(*) from adm_log ".$addwhere; $res = $total = $this->DB->getOne($query); if (DB::isError($res)) { go_url("", $res->getMessage()); exit; } $query = " select * from adm_log ".$addwhere." order by regdate desc "; if($limit) $query .= " limit ".($argu['p']-1)*$this->_LIST_NUM.",".$this->_LIST_NUM; //echo "
$query
"; $res = $list =& $this->DB->getAll($query, array(), DB_FETCHMODE_ASSOC); if (DB::isError($res)) { go_url("", $res->getMessage()); exit; } return $list; } } ?>