login_proc.php 12 KB

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