login_proc.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. <?php
  2. include $_SERVER["DOCUMENT_ROOT"].'/common/lib/comm.php';
  3. $table_name = "aap_master";
  4. $mode = trim(avoid_crack($_REQUEST["mode"]));
  5. // $cd_userid = trim(avoid_crack($_POST["cd_userid"]));
  6. $cd_dealerid = trim(avoid_crack($_POST["cd_dealerid"]));
  7. $nm_email = trim(avoid_crack($_POST["nm_email"]));
  8. $nm_pass = trim(avoid_crack($_POST["nm_pass"]));
  9. $ds_level = trim(avoid_crack($_POST["ds_level"]));
  10. $auto_login = trim(avoid_crack($_POST["auto_login"]));
  11. $nm_pass = trim(avoid_crack($_POST["nm_pass"]));
  12. $cd_pwd = trim(avoid_crack($_POST["cd_pwd"]));
  13. $nm_pass_re = trim(avoid_crack($_POST["nm_pass_re"]));
  14. switch($mode) {
  15. case "login":
  16. $RES = array('CODE'=>'9999', 'MSG'=>'');
  17. try {
  18. if(!$_POST) {
  19. throw new Exception("정상적인 접근이 아닙니다.", "9999");
  20. }
  21. if(empty($cd_dealerid)) {
  22. throw new Exception("아이디가 없습니다.", "9998");
  23. }
  24. if(empty($nm_pass)) {
  25. throw new Exception("비밀번호가 없습니다.", "9997");
  26. }
  27. //소문자만 사용
  28. $cd_dealerid = strtolower($cd_dealerid);
  29. $table_name = "aap_master a";
  30. $_whereis = " cd_dealerid = '". $cd_dealerid . "' and nm_pass = password('". $nm_pass ."') AND ds_delind='N' ";
  31. $row = $dbCon->selectDAO("*, CONVERT(password(cd_dealerid+nm_pass+UNIX_TIMESTAMP()), CHAR) as enc_val, ifnull((select ds_status from aap_master where cd_dealer = a.cd_dealer_p), '') ds_status_p ", $table_name, $_whereis);
  32. if (!$row['cd_dealer']) {
  33. throw new Exception("로그인 정보가 정확하지 않습니다.", "9890");
  34. }
  35. if ($row['ds_status'] == 'W0') {
  36. throw new Exception("탈퇴한 아이디입니다.", "4444");
  37. }
  38. if ($row['ds_status'] == 'D0') {
  39. throw new Exception("휴면계정 아이디입니다.", "4445");
  40. }
  41. if($row['ds_status'] != "Z0") {
  42. throw new Exception("승인되지 않은 AAP 직원입니다.", "4446");
  43. }
  44. // if(empty($row['dt_lastlogin'])) {
  45. // echo "F";
  46. // exit;
  47. $sql = "UPDATE aap_master set dt_lastlogin = now(), enc_val = '{$row['enc_val']}' where cd_dealer = '".$row['cd_dealer']."'";
  48. // echo $sql;
  49. // exit;
  50. // $sql = "UPDATE dealer_master set dt_lastlogin = now() where cd_dealer = '". $row['cd_dealer'] . "'";
  51. $result = $dbCon->query($sql);
  52. $_SESSION['s_cd_dealer_type'] = 'aap';
  53. $_SESSION['s_cd_dealerid'] = $row['cd_dealerid'];
  54. $_SESSION['s_nm_email'] = $row['nm_email'];
  55. $_SESSION['s_nm_name'] = $row['nm_name'];
  56. $_SESSION['s_nm_hp'] = $row['nm_hp'];//.$row['nm_hp_02'].$row['nm_hp_03'];
  57. // $_SESSION['s_nm_hp'] = $row['nm_hp_01'].$row['nm_hp_02'].$row['nm_hp_03'];
  58. $_SESSION['s_nm_hp_form'] = $row['nm_hp_01']."-".$row['nm_hp_02']."-".$row['nm_hp_03'];
  59. // $_SESSION['s_ds_type'] = $row['ds_type']; //$ds_type -> A0:개인,B0:업체,C0:비회원,D0:딜러,D1:딜러-관리자
  60. // $_SESSION['s_ds_level'] = $row['ds_level'];
  61. $_SESSION['s_cd_dealer'] = $row['cd_dealer'];
  62. $_SESSION['s_cd_dealer_p'] = $row['cd_dealer_p'];
  63. $_SESSION['s_nm_area'] = $row['nm_area'];
  64. $_SESSION['s_aap_ds_type'] = $row['ds_type']; //$ds_type -> A0:개인,B0:업체,C0:비회원,D0:딜러,D1:딜러-관리자
  65. // $_SESSION['s_ds_area_sub']=$row[ds_area_sub];
  66. // $_SESSION['s_ds_usertype'] = $row['ds_usertype']; //$ds_usertype ds_type 상세 사용 가능 -> A0:개인,B0:업체,B1:업체1,B2:업체2,C0:비회원
  67. // $_SESSION['s_ds_company_bp1'] = $row['ds_company_bp1']; //관계사1
  68. // $_SESSION['s_ds_branch1'] = $row['ds_branch1']; //지점1
  69. // $_SESSION['s_ds_company_bp2'] = $row['ds_company_bp2']; //관계사2
  70. // $_SESSION['s_ds_branch2'] = $row['ds_branch2']; //지점2
  71. // $_SESSION['s_ds_company_bp3'] = $row['ds_company_bp3']; //관계사3
  72. // $_SESSION['s_ds_branch3'] = $row['ds_branch3']; //지점3
  73. $_SESSION['s_ds_kind'] = substr($row['ds_type'],0,1); //$s_ds_kind -> A:개인, D:딜러,딜러-관리자 예)(($row[ds_type] == "A0")?"D0":"D1");
  74. $_SESSION['s_ds_status_p'] = $row['ds_status_p']; //총괄관리자(딜러) 승인여부 : Z0-승인, 이외-미승인
  75. //자동 로그인
  76. if ($auto_login == "Y"){
  77. // setAutoLogin($row['cd_dealer'], $dbCon);
  78. }
  79. $DATAS = array();
  80. $DATAS['enc_str'] = "al_usr=".$row['cd_dealerid']."&al_val=".$row['enc_val'];
  81. $RES['CODE'] = "0000";
  82. $RES['MSG'] = "정상.";
  83. $RES['DATAS'] = $DATAS;
  84. }catch(Exception $e){
  85. $RES['CODE'] = $e->getCode();
  86. $RES['MSG'] = $e->getMessage();
  87. }
  88. echo json_encode($RES);
  89. exit;
  90. break;
  91. case "loginAuto":
  92. $RES = array('CODE'=>'9999', 'MSG'=>'');
  93. try {
  94. if(!$_POST) {
  95. throw new Exception("정상적인 접근이 아닙니다.", "9999");
  96. }
  97. $cd_dealerid = trim(avoid_crack($_POST["al_usr"]));
  98. $enc_val = trim(avoid_crack($_POST["al_val"]));
  99. if(empty($cd_dealerid)) {
  100. throw new Exception("아이디가 없습니다.", "9998");
  101. }
  102. if(empty($enc_val)) {
  103. throw new Exception("시크릿키가 없습니다.", "9997");
  104. }
  105. $table_name = "aap_master a";
  106. $_whereis = " cd_dealerid = '". $cd_dealerid . "' and enc_val = '". $enc_val ."' AND ds_delind='N' ";
  107. $row = $dbCon->selectDAO("*, ifnull((select ds_status from aap_master where cd_dealer = a.cd_dealer_p), '') ds_status_p ", $table_name, $_whereis);
  108. if (!$row['cd_dealerid']) {
  109. throw new Exception("로그인 정보가 정확하지 않습니다.", "9890");
  110. }
  111. if ($row['ds_status'] == 'W0') {
  112. throw new Exception("탈퇴한 아이디입니다.", "4444");
  113. }
  114. if ($row['ds_status'] == 'D0') {
  115. throw new Exception("휴면계정 아이디입니다.", "4445");
  116. }
  117. // $sql = "UPDATE member_master set dt_lastlogin = now() where cd_user = '".$row[cd_user]."'";
  118. $sql = "UPDATE aap_master set dt_lastlogin = now() where cd_dealer = '". $row['cd_dealer'] . "'";
  119. $result = $dbCon->query($sql);
  120. $_SESSION['s_cd_dealer_type'] = 'aap';
  121. $_SESSION['s_cd_dealerid'] = $row['cd_dealerid'];
  122. $_SESSION['s_nm_email'] = $row['nm_email'];
  123. $_SESSION['s_nm_name'] = $row['nm_name'];
  124. $_SESSION['s_nm_hp'] = $row['nm_hp'];//.$row['nm_hp_02'].$row['nm_hp_03'];
  125. // $_SESSION['s_nm_hp'] = $row['nm_hp_01'].$row['nm_hp_02'].$row['nm_hp_03'];
  126. $_SESSION['s_nm_hp_form'] = $row['nm_hp_01']."-".$row['nm_hp_02']."-".$row['nm_hp_03'];
  127. // $_SESSION['s_ds_type'] = $row['ds_type']; //$ds_type -> A0:개인,B0:업체,C0:비회원,D0:딜러,D1:딜러-관리자
  128. // $_SESSION['s_ds_level'] = $row['ds_level'];
  129. $_SESSION['s_cd_dealer'] = $row['cd_dealer'];
  130. $_SESSION['s_cd_dealer_p'] = $row['cd_dealer_p'];
  131. $_SESSION['s_nm_area'] = $row['nm_area'];
  132. $_SESSION['s_aap_ds_type'] = $row['ds_type']; //$ds_type -> A0:개인,B0:업체,C0:비회원,D0:딜러,D1:딜러-관리자
  133. // $_SESSION['s_ds_area_sub']=$row[ds_area_sub];
  134. // $_SESSION['s_ds_usertype'] = $row['ds_usertype']; //$ds_usertype ds_type 상세 사용 가능 -> A0:개인,B0:업체,B1:업체1,B2:업체2,C0:비회원
  135. // $_SESSION['s_ds_company_bp1'] = $row['ds_company_bp1']; //관계사1
  136. // $_SESSION['s_ds_branch1'] = $row['ds_branch1']; //지점1
  137. // $_SESSION['s_ds_company_bp2'] = $row['ds_company_bp2']; //관계사2
  138. // $_SESSION['s_ds_branch2'] = $row['ds_branch2']; //지점2
  139. // $_SESSION['s_ds_company_bp3'] = $row['ds_company_bp3']; //관계사3
  140. // $_SESSION['s_ds_branch3'] = $row['ds_branch3']; //지점3
  141. $_SESSION['s_ds_kind'] = substr($row['ds_type'],0,1); //$s_ds_kind -> A:개인, D:딜러,딜러-관리자 예)(($row[ds_type] == "A0")?"D0":"D1");
  142. $_SESSION['s_ds_status_p'] = $row['ds_status_p']; //총괄관리자(딜러) 승인여부 : Z0-승인, 이외-미승인
  143. $RES['CODE'] = "0000";
  144. $RES['MSG'] = "정상.";
  145. }catch(Exception $e){
  146. $RES['CODE'] = $e->getCode();
  147. $RES['MSG'] = $e->getMessage();
  148. }
  149. echo json_encode($RES);
  150. exit;
  151. break;
  152. case "chg_password":
  153. $table_name = "aap_master a";
  154. $_whereis = " cd_dealerid = '". $cd_dealerid . "' and nm_pass = password('". $nm_pass ."') ";
  155. $row = $dbCon->selectDAO("*, ifnull((select ds_status from aap_master where cd_dealer = a.cd_dealer_p), '') ds_status_p ", $table_name, $_whereis);
  156. if (!$row['cd_dealer']) {
  157. echo("N");
  158. exit;
  159. } else {
  160. // if(empty($row['dt_lastlogin'])) {
  161. $sql = "UPDATE aap_master set dt_lastlogin = now(), nm_pass= password('".$cd_pwd."'), enc_val = password(cd_dealerid+nm_pass+UNIX_TIMESTAMP()) where cd_dealer = '".$row['cd_dealer']."'";
  162. $result = $dbCon->query($sql);
  163. // echo "Y";
  164. // exit;
  165. // }else {
  166. echo "Y";
  167. exit;
  168. // }
  169. }
  170. break;
  171. case "login_aap":
  172. break;
  173. case "logout":
  174. $_SESSION['s_cd_dealer_type']=null;
  175. $_SESSION['s_cd_dealerid']=null;
  176. $_SESSION['s_nm_email']=null;
  177. $_SESSION['s_nm_name']=null;
  178. $_SESSION['s_nm_hp']=null;
  179. $_SESSION['s_nm_hp_form']=null;
  180. $_SESSION['s_ds_type']=null; //$ds_type -> A0:개인,B0:업체,C0:비회원,D0:딜러,D1:딜러-관리자
  181. $_SESSION['s_ds_level']=null;
  182. $_SESSION['s_cd_dealer']=null;
  183. $_SESSION['s_cd_dealer_p']=null;
  184. $_SESSION['s_nm_area']=null;
  185. // $_SESSION['s_ds_area_sub']=$row[ds_area_sub];
  186. $_SESSION['s_ds_usertype']=null; //$ds_usertype ds_type 상세 사용 가능 -> A0:개인,B0:업체,B1:업체1,B2:업체2,C0:비회원
  187. $_SESSION['s_ds_company_bp1']=null; //관계사1
  188. $_SESSION['s_ds_branch1']=null; //지점1
  189. $_SESSION['s_ds_company_bp2']=null; //관계사2
  190. $_SESSION['s_ds_branch2']=null; //지점2
  191. $_SESSION['s_ds_company_bp3']=null; //관계사3
  192. $_SESSION['s_ds_branch3']=null; //지점3
  193. $_SESSION['s_ds_kind']= null; //$s_ds_kind -> A:개인, D:딜러,딜러-관리자 예)(($row[ds_type] == "A0")?"D0":"D1");
  194. $_SESSION['s_ds_status_p']=null; //총괄관리자(딜러) 승인여부 : Z0-승인, 이외-미승인
  195. setcookie ('ESMotorsAAP', '', time() - 1, "/");
  196. Redirect("/aap/login.php");
  197. break;
  198. default :
  199. AlertBack("지정되지않은 요청입니다");
  200. break;
  201. }
  202. //자동 로그인
  203. //db_connect $connect 넘겨주지 않고 사용해도 되나? $connect 반환 제대로 될까?
  204. function setAutoLogin($cd_dealer,$argDbCon){
  205. $_whereis1 = " cd_user = '". $cd_user . "' ";
  206. $sql1 = " select * from aap_master where cd_dealer = '". $cd_dealer . "' ";
  207. $row = mysql_fetch_array(mysql_query($sql1));
  208. setcookie ('ESMotorsAAP', 'al_usr='.$row['cd_dealerid'].'&al_val='.$row['enc_val'], time() + LIMIT_TIME_AUTO_LOGIN, "/");
  209. }
  210. mysql_close($connect);
  211. ?>