join.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388
  1. <?php
  2. include $_SERVER['DOCUMENT_ROOT'].'/common/lib/comm.php';
  3. $nav_title = "회원가입";
  4. // $show_btn_back = true;
  5. ?>
  6. <?php include("include/header.php") ?>
  7. <style>
  8. .txt_red{color:#be0606;}
  9. </style>
  10. <main class="normal--wrap" style="padding-bottom:90px;">
  11. <section class="join--form--wrap">
  12. <div class="join--form--contents">
  13. <form id="frmMember" name="frmMember" method="post" action="join_proc.php" enctype="multipart/form-data">
  14. <input type="hidden" name="mode" id="mode" value="Add"/>
  15. <input type="hidden" name="idchkresult" id="idchkresult" value="N"/>
  16. <input type="hidden" name="ds_agree1" id="ds_agree1" value="Y"/>
  17. <input type="hidden" name="ds_agree2" id="ds_agree2" value="Y"/>
  18. <input type="hidden" name="ds_agree3" id="ds_agree3" value="Y"/>
  19. <input type="hidden" name="ds_agree4" id="ds_agree4" value="Y"/>
  20. <!-- <input type="hidden" name="nm_hp" id="nm_hp" value=""/> -->
  21. <!-- <input type="hidden" name="nm_email" id="nm_email" value=""/> -->
  22. <div class="join--form--inner">
  23. <h2>개인 정보 입력</h2>
  24. <div>
  25. <input type="text" class="form-control" name="cd_userid" id="cd_userid" placeholder="아이디">
  26. <p id="id_chk_info" class="hide"></p>
  27. </div>
  28. <div>
  29. <input type="password" class="form-control" name="nm_pass" id="nm_pass" maxlength="20" placeholder="패스워드">
  30. </div>
  31. <div>
  32. <input type="password" class="form-control" name="nm_pass2" id="nm_pass2" maxlength="20" placeholder="패스워드 확인">
  33. </div>
  34. <div>
  35. <input type="text" class="form-control" name="nm_name" id="nm_name" maxlength="20" placeholder="이름">
  36. </div>
  37. <div>
  38. <input type="text" class="form-control" id="nm_hp" name="nm_hp" placeholder="핸드폰 번호">
  39. </div>
  40. <div>
  41. <input type="text" class="form-control" id="nm_email" name="nm_email" placeholder="이메일">
  42. </div>
  43. <h2 class="mt45">사용자 선택</h2>
  44. <div>
  45. <select name="ds_company_bp" id="ds_company_bp" class="form-select"></select>
  46. <!-- <select id="inputState" class="form-select">
  47. <option selected>지점 직접 입력</option>
  48. </select> -->
  49. </div>
  50. <div>
  51. <select name="ds_branch" id="ds_branch" class="form-select"></select>
  52. <!-- <input type="text" class="form-control" id="" placeholder="지점명을 입력해주세요"> -->
  53. </div>
  54. </div>
  55. <div class="agree--wrapper mt35 d-flex justify-content-end">
  56. <input type="checkbox" id="ds_agree10" class="ty2" hidden>
  57. <label for="ds_agree10">회원 이용약관 (필수)</label>
  58. <button type="button" class="info--btn btn" data-bs-toggle="modal" data-bs-target="#agreeModal1">약관보기</button>
  59. </div>
  60. <div class="agree--wrapper mt35 d-flex justify-content-end">
  61. <input type="checkbox" id="ds_agree20" class="ty2" hidden>
  62. <label for="ds_agree20">개인정보 수집 및 이용 동의 (필수)</label>
  63. <button type="button" class="info--btn btn" data-bs-toggle="modal" data-bs-target="#agreeModal2">약관보기</button>
  64. </div>
  65. <div class="col-12 d-flex justify-content-center join--btn--wrap floating--btn">
  66. <button type="button" class="btn btn-primary" id="btn_join_proc">회원가입</button>
  67. </div>
  68. </form>
  69. </div>
  70. </section>
  71. </main>
  72. <!-- 회원이용약관 -->
  73. <div class="modal fade type2" id="agreeModal1" tabindex="-1" aria-labelledby="agree_lable1" aria-hidden="true">
  74. <div class="modal-dialog modal-dialog-centered" style="max-width:calc(100vw - 40px);">
  75. <div class="modal-content">
  76. <div class="modal-header">
  77. <h1 class="modal-title" id="agree_lable1">회원 이용약관 동의</h1>
  78. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  79. </div>
  80. <div class="modal-body modal--body pt0">
  81. <div class="date--text" style="max-height:60vh; overflow-y: auto;">
  82. <?php include("../../include/clause_txt1.txt"); ?>
  83. </div>
  84. </div>
  85. <div class="modal-footer d-flex justify-content-center ty2 ty--2">
  86. <button type="button" class="btn btn-primary" data-bs-dismiss="modal" style="max-width:100px;">확인</button>
  87. </div>
  88. </div>
  89. </div>
  90. </div>
  91. <!-- 개인정보 수집이용 -->
  92. <div class="modal fade type2" id="agreeModal2" tabindex="-1" aria-labelledby="agree_lable2" aria-hidden="true">
  93. <div class="modal-dialog modal-dialog-centered" style="max-width:calc(100vw - 40px);">
  94. <div class="modal-content">
  95. <div class="modal-header">
  96. <h1 class="modal-title" id="agree_lable2">개인정보 수집 및 이용 동의</h1>
  97. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  98. </div>
  99. <div class="modal-body modal--body pt0">
  100. <div class="date--text" style="max-height:60vh; overflow-y: auto;">
  101. <? include("../../include/clause_txt2.txt"); ?>
  102. </div>
  103. </div>
  104. <div class="modal-footer d-flex justify-content-center ty2 ty--2">
  105. <button type="button" class="btn btn-primary" data-bs-dismiss="modal" style="max-width:100px;">확인</button>
  106. </div>
  107. </div>
  108. </div>
  109. </div>
  110. <script>
  111. function id_chk() {
  112. var cd_userid = $("#cd_userid").val();
  113. var custom_opts = {
  114. title : '',
  115. btn_close_show : false,
  116. }
  117. if($.trim(cd_userid) == ""){
  118. return false;
  119. }
  120. $("#id_chk_info").removeClass("txt_red").removeClass("hide");
  121. $.post("join_proc.php", { mode: "IdChk", cd_userid: cd_userid},function(res) {
  122. if(res.CODE != "0000"){
  123. $("#idchkresult").val("N");
  124. id_chk_info = "사용불가능한 아이디 입니다.";
  125. $("#id_chk_info").addClass("txt_red").text(id_chk_info);
  126. }else {
  127. $("#idchkresult").val("Y");
  128. id_chk_info = "사용할 수 있는 아이디입니다.";
  129. $("#id_chk_info").removeClass("txt_red").text(id_chk_info);
  130. }
  131. }, "json");
  132. return false;
  133. }
  134. $(function() {
  135. setCodeSelect("listPhone","nm_hp1","","","","선택","");
  136. setCodeSelect("listEmail","nm_email3","","","","직접입력","");
  137. setCodeSelect("listcode","ds_company_bp", "sa_master","ds_company_bp",""," 유형을 선택하세요","");
  138. setCodeSelect("listcode","ds_branch", "sa_master","ds_branch","","유형을 선택하세요","-1");
  139. //아이디 체크
  140. $("#cd_userid").bind("focusout", id_chk);
  141. $("#btn_login_page").on("click", function() {
  142. link("login.php");
  143. });
  144. $("#ds_company_bp").change(function(){
  145. setCodeSelect("listcode","ds_branch", "sa_master","ds_branch","","선택하세요",$(this).val());
  146. });
  147. $("#cd_userid").bind("keyup",function(){
  148. $("#idchkresult").val("N");
  149. $("#id_chk_info").removeClass("txt_red").addClass("hide").text("");
  150. });
  151. $("#nm_email3").on("change", function(){
  152. if($(this).val() == ""){
  153. $("#nm_email2").show();
  154. }else{
  155. $("#nm_email2").hide();
  156. }
  157. });
  158. $("#btn_join_proc").on('click', function() {
  159. var custom_opts = {
  160. title : '',
  161. btn_close_show : false,
  162. }
  163. var fieldlist = [["cd_userid","아이디"],["nm_pass","패스워드"],["nm_pass2","패스워드 확인"],["nm_name","이름"],["nm_hp","휴대번호"]
  164. ,["ds_company_bp","관계사"], ["ds_branch", "지점"]]
  165. var nm_email3 = $("#nm_email3").val();
  166. if(nm_email3 == "") {
  167. fieldlist.push(["nm_email2", "이메일"]);
  168. }
  169. if (!fnCheckForm(fieldlist)){
  170. return false;
  171. }
  172. // var idReg1 = /[a-z]/g;
  173. // var idReg2 = /[0-9]/g;
  174. //
  175. // if( !(idReg1.test( $("#cd_userid").val() )) || !(idReg2.test( $("#cd_userid").val() )) ) {
  176. // custom_opts.title = '아이디는 영문/숫자 조합으로 이루어져야 합니다.';
  177. //
  178. // custom_modal_alert(custom_opts);
  179. // return false;
  180. // }
  181. // var idReg = /^[a-z]+[a-z0-9]{5,19}$/g;
  182. // if( !idReg.test( $("#cd_userid").val() ) ) {
  183. // custom_opts.title = '아이디는 영문자로 시작하는 6~20자 영문자 또는 숫자이어야 합니다.';
  184. //
  185. // custom_modal_alert(custom_opts);
  186. // return false;
  187. // }
  188. var idReg = /^[a-z]+[a-z0-9]{3,19}$/g;
  189. var idReg = /^[a-zA-Z]+[a-zA-Z0-9]{3,19}$/g;
  190. // var idReg = /^[a-zA-Z](?=.*[a-zA-Z])(?=.*[0-9]).{4,12}$/g;
  191. var idReg = /^[a-zA-Z](?=.*[a-zA-Z])(?=.*[0-9]).{3,19}$/g;
  192. if( !idReg.test( $("#cd_userid").val() ) ) {
  193. // custom_opts.title = '아이디는 영문자로 시작하는 4~20자 영문자 또는 숫자이어야 합니다.';
  194. custom_opts.title = '아이디는 영문자로 시작하는 4~20자 영문자/숫자 조합이어야 합니다';
  195. custom_modal_alert(custom_opts);
  196. return false;
  197. }
  198. // if(!fnCheckAlphaNumber($("#cd_userid").val())){
  199. // custom_opts.title = '아이디는 영문/숫자 조합으로 이루어져야 합니다.';
  200. //
  201. // custom_modal_alert(custom_opts);
  202. // return false;
  203. //
  204. // }
  205. // if($("#cd_userid").val().length <6){
  206. // custom_opts.title = '아이디는6글자 이상 아이디를 입력하세요.';
  207. //
  208. // custom_modal_alert(custom_opts);
  209. // return false;
  210. // }
  211. if($("#cd_userid").val().length <4){
  212. custom_opts.title = '아이디는4글자 이상 아이디를 입력하세요.';
  213. custom_modal_alert(custom_opts);
  214. return false;
  215. }
  216. if($("#idchkresult").val() != "Y"){
  217. custom_opts.title = '아이디 중복확인을 해 주세요.';
  218. custom_modal_alert(custom_opts);
  219. return false;
  220. }
  221. /*패스워드 처리*/
  222. if($("#nm_pass").val().length == 0 || $("#nm_pass2").val().length == 0){
  223. custom_opts.title = '패스워드를 입력하세요.';
  224. custom_modal_alert(custom_opts);
  225. return false;
  226. }
  227. if($("#nm_pass").val().length > 0){
  228. if($("#nm_email1").val()==$("#nm_pass").val()){
  229. custom_opts.title = '아이디와 패스워드는 다르게입력하세요.';
  230. custom_modal_alert(custom_opts);
  231. return false;
  232. }
  233. if($("#nm_pass").val()!=$("#nm_pass2").val()){
  234. custom_opts.title = '패스워드가 일치하지 않습니다.';
  235. custom_modal_alert(custom_opts);
  236. return false;
  237. }
  238. if(!fnCheckAlphaNumber($("#nm_pass").val())){
  239. custom_opts.title = '패스워드는 영문/숫자 조합으로 이루어져야 합니다.';
  240. custom_modal_alert(custom_opts);
  241. return false;
  242. }
  243. if($("#nm_pass").val().length <8){
  244. custom_opts.title = '8글자 이상 패스워드를 입력하세요.';
  245. custom_modal_alert(custom_opts);
  246. return false;
  247. }
  248. }
  249. /*연락처*/
  250. // $("#nm_hp").val($("#nm_hp1").val()+"-"+$("#nm_hp2").val()+"-"+$("#nm_hp3").val());
  251. //
  252. // /*이메일 체크*/
  253. // var nm_email3 = $("#nm_email3").val();
  254. // if($.trim(nm_email3) == "") {
  255. // $("#nm_email").val($("#nm_email1").val()+"@"+$("#nm_email2").val());
  256. // }else {
  257. // $("#nm_email").val($("#nm_email1").val()+"@"+$("#nm_email3").val());
  258. // }
  259. var nm_email = $("#nm_email").val();
  260. if($.trim(nm_email) != "") {
  261. if(!isValid(nm_email,"regEmail")){
  262. custom_opts.title = '정확한 이메일을 입력하세요.';
  263. custom_modal_alert(custom_opts);
  264. return false;
  265. }
  266. }
  267. if(!document.getElementById("ds_agree10").checked){
  268. custom_opts.title = "[필수] 회원 이용약관에 동의해 주세요.";
  269. custom_modal_alert(custom_opts);
  270. return false;
  271. }
  272. if(!document.getElementById("ds_agree20").checked){
  273. custom_opts.title = "[필수] 개인정보 수집이용 에 동의해 주세요.";
  274. custom_modal_alert(custom_opts);
  275. return false;
  276. }
  277. custom_opts.title = '회원가입 하시겠습니까?';
  278. custom_modal_confirm(custom_opts, function(confirm) {
  279. if(confirm) {
  280. $("#btn_join_proc").hide();
  281. var data = $("#frmMember").serialize();
  282. $.ajax({
  283. url : 'join_proc.php',
  284. type: 'POST',
  285. dataType : 'json',
  286. data: data,
  287. success: function(res) {
  288. custom_modal_confirm_close();
  289. $("#btn_join_proc").show();
  290. //세션 종료시 로그인 페이지로 이동
  291. if(res.CODE != "0000") {
  292. custom_opts.title = res.MSG;
  293. if(res.CODE == "4444") {
  294. window.location.href = res.DATAS.URL;
  295. }
  296. custom_modal_alert(custom_opts);
  297. return false;
  298. }
  299. custom_opts.title = '회원 가입이 완료 되었습니다. 관리자 승인 후 로그인이 가능합니다.';
  300. custom_opts.event_esc_key = false;
  301. custom_modal_alert(custom_opts, function() {
  302. link("login.php");
  303. });
  304. },
  305. error:function(request,status,error){
  306. $("#btn_join_proc").show();
  307. custom_modal_confirm_close();
  308. alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
  309. }
  310. });
  311. }else {
  312. $("#btn_join_proc").show();
  313. return false;
  314. }
  315. });
  316. });
  317. })
  318. </script>
  319. <?php include("include/bottom.php") ?>