login_proc.php 9.1 KB

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