join.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563
  1. <?php
  2. include $_SERVER['DOCUMENT_ROOT'].'/common/lib/comm.php';
  3. ?>
  4. <?php include("../include/inc_header.php") ?>
  5. <form id="frmMember" name="frmMember" method="post" action="join_proc.php" enctype="multipart/form-data">
  6. <input type="hidden" name="validate" id="validate" value=""/>
  7. <input type="hidden" name="ds_type" id="ds_type" value="A0"/>
  8. <input type="hidden" name="ds_level" id="ds_level" value="<?=$ds_level?>"/>
  9. <input type="hidden" name="cd_user" id="cd_user" value="<?=$cd_user?>"/>
  10. <input type="hidden" name="mode" id="mode" value="Add"/>
  11. <!--input type="hidden" name="PageNo" id="PageNo" value="<?=$PageNo?>"/-->
  12. <input type="hidden" name="idchkresult" id="idchkresult" value="N"/>
  13. <input type="hidden" name="nm_email" id="nm_email" value=""/>
  14. <input type="hidden" name="nm_hp" id="nm_hp" value=""/>
  15. <main class="normal--wrap pb123">
  16. <section class="join--form--wrap">
  17. <h2 class="">이차조아 <span></span> 회원가입</h2>
  18. <p>이용약관과 개인정보처리방침에 대한 안내를 읽고 동의해주세요.</p>
  19. <div class="join--form--contents">
  20. <table>
  21. <tbody>
  22. <tr>
  23. <th>아이디</th>
  24. <td>
  25. <div class="d-flex align-items-center">
  26. <input type="text" class="form-control" name="nm_email1" id="nm_email1" style="max-width:220px;">
  27. <label for="" class="ml10 mr10">@</label>
  28. <input type="text" class="form-control" name="nm_email2" id="nm_email2" style="max-width:220px;">
  29. <select id="nm_email3" name="nm_email3" class="form-select ml10" style="max-width:170px;"></select>
  30. <input type="button" class="form-control ml10 btn btn-secondary" value="ID 중복확인" style="max-width:220px;" id="btn_idchk">
  31. </div>
  32. </td>
  33. </tr>
  34. <tr height="88">
  35. <th>패스워드</th>
  36. <td>
  37. <input type="password" class="form-control" name="nm_pass" id="nm_pass" maxlength="20"><span class="td_txt">8자~15자 영문, 숫자, 특수문자 조합</span>
  38. </td>
  39. </tr>
  40. <tr height="88">
  41. <th>패스워드 확인</th>
  42. <td>
  43. <input type="password" class="form-control" name="nm_pass2" id="nm_pass2" maxlength="20"><span class="td_txt">8자~15자 영문, 숫자, 특수문자 조합</span>
  44. </td>
  45. </tr>
  46. <tr>
  47. <th>이름</th>
  48. <td>
  49. <input type="text" class="form-control" name="nm_name" id="nm_name" maxlength="20">
  50. </td>
  51. </tr>
  52. <tr>
  53. <th>핸드폰</th>
  54. <td>
  55. <div class="d-flex align-items-center">
  56. <select id="nm_hp1" name="nm_hp1" class="form-select" style="max-width:90px;"></select>
  57. <label for="" class="ml10 mr10">-</label>
  58. <input type="text" class="form-control" name="nm_hp2" id="nm_hp2" style="max-width:105px;" maxlength="4">
  59. <label for="" class="ml10 mr10">-</label>
  60. <input type="text" class="form-control" name="nm_hp3" id="nm_hp3" style="max-width:105px;" maxlength="4">
  61. </div>
  62. </td>
  63. </tr>
  64. <!-- <tr>
  65. <th>이메일</th>
  66. <td>
  67. <div class="d-flex align-items-center">
  68. <input type="text" class="form-control" id="" style="max-width:220px;">
  69. <label for="" class="ml10 mr10">@</label>
  70. <input type="text" class="form-control" id="" style="max-width:220px;">
  71. <select id="inputState" class="form-select ml10" style="max-width:170px;">
  72. <option selected>직접입력</option>
  73. <option></option>
  74. </select>
  75. </div>
  76. </td>
  77. </tr> -->
  78. <tr>
  79. <th>지역</th>
  80. <td>
  81. <div class="d-flex align-items-center">
  82. <select name="ds_area" id="ds_area" class="form-control" style="max-width:170px;"></select>
  83. </div>
  84. </td>
  85. </tr>
  86. </tbody>
  87. </table>
  88. <!-- <h3>약관동의</h3>
  89. <div class="clause_chk_list">
  90. <p class="all"><span class="check_wrap"><input type="checkbox" name="agree_all" id="agree_all" value=""><i></i><label for="agree_all">전체 약관동의</label></span></p>
  91. <ul>
  92. <li>
  93. <span class="check_wrap"><input type="checkbox" name="ds_agree1" id="ds_agree1" value="Y"><i></i><label for="ds_agree1">[필수] 회원 이용약관</label></span>
  94. <div>
  95. <textarea cols="100" rows="10" readonly><? include("../include/clause_txt1.txt"); ?></textarea>
  96. </div>
  97. </li>
  98. <li>
  99. <span class="check_wrap"><input type="checkbox" name="ds_agree2" id="ds_agree2" value="Y"><i></i><label for="ds_agree2">[필수] 개인정보 수집이용</label></span>
  100. <div>
  101. <textarea cols="100" rows="10" readonly><? include("../include/clause_txt2.txt"); ?></textarea>
  102. </div>
  103. </li>
  104. <li>
  105. <span class="check_wrap"><input type="checkbox" name="ds_agree3" id="ds_agree3" value="Y"><i></i><label for="ds_agree3">[선택] 마케팅 목적 개인정보 수집/이용</label></span>
  106. <div>
  107. <textarea cols="100" rows="10"><? include("../include/clause_txt3.txt"); ?></textarea>
  108. </div>
  109. </li>
  110. <li>
  111. <span class="check_wrap"><input type="checkbox" name="ds_agree4" id="ds_agree4" value="Y"><i></i><label for="ds_agree4">[선택] 개인정보 제3자 제공</label></span>
  112. <div>
  113. <textarea cols="100" rows="10"><? include("../include/clause_txt4.txt"); ?></textarea>
  114. </div>
  115. </li>
  116. </ul>
  117. </div> -->
  118. <div class="agree--wrapper mt35 d-flex justify-content-end">
  119. <input type="checkbox" id="ds_agree1" class="ty2" hidden value="Y">
  120. <label for="ds_agree1">회원 이용약관 (필수)</label>
  121. <button type="button" class="info--btn btn" data-bs-toggle="modal" data-bs-target="#agreeModal1">약관보기</button>
  122. </div>
  123. <div class="agree--wrapper mt35 d-flex justify-content-end">
  124. <input type="checkbox" id="ds_agree2" class="ty2" hidden value="Y">
  125. <label for="ds_agree2">개인정보 수집 및 이용 동의 (필수)</label>
  126. <button type="button" class="info--btn btn" data-bs-toggle="modal" data-bs-target="#agreeModal2">약관보기</button>
  127. </div>
  128. <div class="col-12 d-flex justify-content-center join--btn--wrap mt90">
  129. <button type="button" class="btn btn-secondary" style="width:180px; height:55px;" id="btn_back">취소</button>
  130. <button type="button" class="btn btn-primary ml15" style="width:180px; height:55px;" id="btn_write">회원가입<i class="join--ic"></i></button>
  131. </div>
  132. </div>
  133. </section>
  134. </main>
  135. </form>
  136. <!-- 회원이용약관 -->
  137. <div class="modal fade type2" id="agreeModal1" tabindex="-1" aria-labelledby="agree_lable1" aria-hidden="true">
  138. <div class="modal-dialog modal-dialog-centered" style="max-width:800px;">
  139. <div class="modal-content">
  140. <div class="modal-header">
  141. <h1 class="modal-title" id="agree_lable1">회원 이용약관 동의</h1>
  142. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  143. </div>
  144. <div class="modal-body modal--body pt0">
  145. <div class="date--text" style="max-height:500px; overflow-y: auto;">
  146. <?php include("../include/clause_txt1.txt"); ?>
  147. </div>
  148. </div>
  149. <div class="modal-footer d-flex justify-content-center ty2 ty--2">
  150. <button type="button" class="btn btn-primary" data-bs-dismiss="modal" style="max-width:100px;">확인</button>
  151. </div>
  152. </div>
  153. </div>
  154. </div>
  155. <!-- 개인정보 수집이용 -->
  156. <div class="modal fade type2" id="agreeModal2" tabindex="-1" aria-labelledby="agree_lable2" aria-hidden="true">
  157. <div class="modal-dialog modal-dialog-centered" style="max-width:800px;">
  158. <div class="modal-content">
  159. <div class="modal-header">
  160. <h1 class="modal-title" id="agree_lable2">개인정보 수집 및 이용 동의</h1>
  161. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  162. </div>
  163. <div class="modal-body modal--body pt0">
  164. <div class="date--text" style="max-height:500px; overflow-y: auto;">
  165. <? include("../include/clause_txt2.txt"); ?>
  166. </div>
  167. </div>
  168. <div class="modal-footer d-flex justify-content-center ty2 ty--2">
  169. <button type="button" class="btn btn-primary" data-bs-dismiss="modal" style="max-width:100px;">확인</button>
  170. </div>
  171. </div>
  172. </div>
  173. </div>
  174. <script laguage="javascript" type="text/javascript">
  175. function id_chk() {
  176. var nm_email = "";
  177. var fieldlist = [];
  178. var custom_opts = {
  179. title : '',
  180. btn_close_show : false,
  181. }
  182. if($("#nm_email3").val() == "") {
  183. fieldlist = [["nm_email1","아이디"], ["nm_email2","아이디"]];
  184. }else {
  185. fieldlist = [["nm_email1","아이디"], ["nm_email3","아이디"]];
  186. }
  187. if (!fnCheckForm(fieldlist)){
  188. return false;
  189. }
  190. var nm_email1 = $("#nm_email1").val();
  191. var nm_email2 = $("#nm_email2").val();
  192. var nm_email3 = $("#nm_email3").val();
  193. nm_email = nm_email1+"@"+($.trim(nm_email3) ? nm_email3 : nm_email2);
  194. $.post("join_proc.php", { mode: "IdChk", nm_email: nm_email},function(res) {
  195. if(res.CODE != "0000") {
  196. $("#idchkresult").val("N");
  197. alert(res.MSG);
  198. return false;
  199. }
  200. custom_opts.title = '이용가능합니다. 아이디를 사용하시겠습니까?';
  201. custom_modal_confirm(custom_opts, function(confirm) {
  202. if(confirm) {
  203. $("#idchkresult").val("Y");
  204. custom_modal_confirm_close();
  205. }
  206. });
  207. // if(confirm("이용가능합니다. 아이디를 사용하시겠습니까?")){
  208. // // $("#cd_userid").attr("readonly",true).css("background","#d2d3d5");
  209. // $("#idchkresult").val("Y");
  210. // }
  211. // if(data=="Y"){
  212. // if(confirm("이용가능합니다. 아이디를 사용하시겠습니까?")){
  213. // $("#cd_userid").attr("readonly",true).css("background","#d2d3d5");
  214. // $("#idchkresult").val("Y");
  215. // return;
  216. // }
  217. // }else{
  218. // alert("사용불가능한 아이디 입니다.");
  219. // $("#idchkresult").val("N");
  220. // return;
  221. // }
  222. }, "json");
  223. return false;
  224. }
  225. $(document).ready(function() {
  226. setCodeSelect("listPhone","nm_hp1","","","","선택","");
  227. setCodeSelect("listEmail","nm_email3","","","","직접입력","");
  228. setCodeSelect("listcode","ds_area", "member_master","ds_area","","선택하세요","");
  229. $("#btn_back").on("click", function() {
  230. history.back(-1);
  231. });
  232. $("#nm_email1").bind("keyup",function(){
  233. $("#idchkresult").val("N");
  234. });
  235. $("#nm_email3").on("change", function(){
  236. $("#idchkresult").val("N");
  237. if($(this).val() == ""){
  238. $("#nm_email2").show();
  239. }else{
  240. $("#nm_email2").hide();
  241. }
  242. });
  243. //아이디 체크
  244. $("#btn_idchk").on("click",function(){
  245. id_chk();
  246. });
  247. // $("#agree_all").bind("click",function(){
  248. // agreeChkAll();
  249. // });
  250. //
  251. // $("#agree_all").bind("keyup",function(){
  252. // agreeChkAll();
  253. // });
  254. $("#btn_write").bind("click",function(){
  255. var custom_opts = {
  256. title : '',
  257. btn_close_show : false,
  258. }
  259. var fieldlist = [["nm_email1","아이디"],["nm_pass","비밀번호"],["nm_pass2","비밀번호"],["nm_name","이름"]
  260. ,["nm_hp1","휴대번호"],["nm_hp2","휴대번호"],["nm_hp3","휴대번호"]
  261. ,["ds_area","지역"]]
  262. var nm_email3 = $("#nm_email3").val();
  263. if(nm_email3 == "") {
  264. fieldlist.push(["nm_email2"]);
  265. }
  266. if (!fnCheckForm(fieldlist)){
  267. return false;
  268. }
  269. /*아이디 관련 처리*/
  270. var idReg1 = /[a-z]/g;
  271. var idReg2 = /[0-9]/g;
  272. /*
  273. if( !(idReg1.test( $("#cd_userid").val() )) || !(idReg2.test( $("#cd_userid").val() )) ) {
  274. alert("아이디는 영문/숫자 조합으로 이루어져야 합니다.");
  275. $("#cd_userid").focus();
  276. return false;
  277. }
  278. var idReg = /^[a-z]+[a-z0-9]{5,19}$/g;
  279. if( !idReg.test( $("#cd_userid").val() ) ) {
  280. alert("아이디는 영문자로 시작하는 6~20자 영문자 또는 숫자이어야 합니다.");
  281. $("#cd_userid").focus();
  282. return false;
  283. }
  284. if(!fnCheckAlphaNumber($("#cd_userid").val())){
  285. alert('아이디는 영문/숫자 조합으로 이루어져야 합니다.');
  286. return false;
  287. }
  288. if($("#cd_userid").val().length <6){
  289. alert("6글자 이상 아이디를 입력하세요");
  290. $("#cd_userid").focus();
  291. return false;
  292. }
  293. */
  294. if($("#idchkresult").val() != "Y"){
  295. custom_opts.title = "아이디 중복확인을 해 주세요.";
  296. custom_modal_alert(custom_opts);
  297. return false;
  298. }
  299. /*패스워드 처리*/
  300. // if($("#nm_pass").val().length == 0 || $("#nm_pass2").val().length == 0){
  301. // alert("패스워드를 입력하세요");
  302. // $("#nm_pass").focus();
  303. // return false;
  304. // }
  305. if($("#nm_pass").val().length > 0){
  306. if($("#nm_email1").val()==$("#nm_pass").val()){
  307. custom_opts.title = "아이디와 변경할 패스워드를 다르게입력하세요.";
  308. custom_modal_alert(custom_opts);
  309. return false;
  310. }
  311. if($("#nm_pass").val()!=$("#nm_pass2").val()){
  312. custom_opts.title = "입력하신 변경할 패스워드가 일치하지 않습니다.";
  313. custom_modal_alert(custom_opts);
  314. return false;
  315. }
  316. var check = /^(?=.*[a-zA-Z])(?=.*[!@#$%^*+=-])(?=.*[0-9]).{6,16}$/;
  317. var nm_pass = $("#nm_pass").val();
  318. if (!check.test(nm_pass)) {
  319. custom_opts.title = "비밀번호는 문자, 숫자, 특수문자의 조합으로 입력해주세요.";
  320. custom_modal_alert(custom_opts);
  321. return false;
  322. }
  323. if (nm_pass.length < 6 || nm_pass.length > 16) {
  324. custom_opts.title = "비밀번호는 6 ~ 16 자리로 입력해주세요.";
  325. custom_modal_alert(custom_opts);
  326. return false;
  327. }
  328. // if(!isStrongValidFormPassword($("#nm_pass").val())){
  329. // return false;
  330. // }
  331. }
  332. var nm_hp1 = $("#nm_hp1").val();
  333. var nm_hp2 = $("#nm_hp2").val();
  334. var nm_hp3 = $("#nm_hp3").val();
  335. var nm_hp_test = nm_hp1+nm_hp2+nm_hp3;
  336. var nm_hp = nm_hp1+"-"+nm_hp2+"-"+nm_hp3;
  337. if(!ChkNum(nm_hp_test)){
  338. custom_opts.title = "휴대폰 번호는 숫자만 입력하세요.";
  339. custom_modal_alert(custom_opts);
  340. return false;
  341. // alert("휴대폰 번호는 숫자만 입력하세요.");
  342. // $("#nm_hp").focus();
  343. // return false;
  344. }
  345. /*
  346. if($("#nm_hp_01").val() == ""){
  347. alert("휴대폰 번호를 입력하세요.");
  348. $("#nm_hp_01").focus();
  349. return false;
  350. }
  351. if($("#nm_hp_02").val() == ""){
  352. alert("휴대폰 번호를 입력하세요.");
  353. $("#nm_hp_02").focus();
  354. return false;
  355. }
  356. if($("#nm_hp_03").val() == ""){
  357. alert("휴대폰 번호를 입력하세요.");
  358. $("#nm_hp_03").focus();
  359. return false;
  360. }
  361. $("#nm_hp").val($("#nm_hp_01").val()+"-"+$("#nm_hp_02").val()+"-"+$("#nm_hp_03").val());
  362. if($("#nm_email1").val() == ""){
  363. alert("이메일을 입력하세요.");
  364. $("#nm_email1").focus();
  365. return false;
  366. }
  367. if($("#nm_email3").val() == ""){
  368. if($("#nm_email2").val() == ""){
  369. alert("이메일을 입력하세요.");
  370. $("#nm_email2").focus();
  371. return false;
  372. }
  373. $("#nm_email").val($("#nm_email1").val()+"@"+$("#nm_email2").val());
  374. }else{
  375. $("#nm_email").val($("#nm_email1").val()+"@"+$("#nm_email3").val());
  376. }
  377. */
  378. var nm_email1 = $("#nm_email1").val();
  379. var nm_email2 = $("#nm_email2").val();
  380. var nm_email3 = $("#nm_email3").val();
  381. var nm_email = nm_email1+"@"+($.trim(nm_email3) ? nm_email3 : nm_email2);
  382. $("#nm_email").val(nm_email);
  383. $("#nm_hp").val(nm_hp);
  384. /*
  385. if($("#nm_addr").val() == ""){
  386. alert("주소를 입력하세요.");
  387. $("#nm_addr").focus();
  388. return false;
  389. }
  390. if($("#nm_addr_sub").val() == ""){
  391. alert("주소를 입력하세요.");
  392. $("#nm_addr_sub").focus();
  393. return false;
  394. }
  395. */
  396. // var idReg = /^[a-z]+[a-z0-9]{3,19}$/g;
  397. // var idReg = /^[a-zA-Z]+[a-zA-Z0-9]{3,19}$/g;
  398. // // var idReg = /^[a-zA-Z](?=.*[a-zA-Z])(?=.*[0-9]).{4,12}$/g;
  399. // var idReg = /^[a-zA-Z](?=.*[a-zA-Z])(?=.*[0-9]).{3,19}$/g;
  400. // if( !idReg.test( $("#nm_email").val() ) ) {
  401. // // custom_opts.title = '아이디는 영문자로 시작하는 4~20자 영문자 또는 숫자이어야 합니다.';
  402. // custom_opts.title = '아이디는 영문자로 시작하는 4~20자 영문자/숫자 조합이어야 합니다';
  403. //
  404. // custom_modal_alert(custom_opts);
  405. // return false;
  406. // }
  407. if(!document.getElementById("ds_agree1").checked){
  408. custom_opts.title = "[필수] 회원 이용약관에 동의해 주세요.";
  409. custom_modal_alert(custom_opts);
  410. return false;
  411. }
  412. if(!document.getElementById("ds_agree2").checked){
  413. custom_opts.title = "[필수] 개인정보 수집이용 에 동의해 주세요.";
  414. custom_modal_alert(custom_opts);
  415. return false;
  416. }
  417. custom_opts.title = '회원가입 하시겠습니까?';
  418. custom_modal_confirm(custom_opts, function(confirm) {
  419. if(confirm) {
  420. $("#btn_join_proc").hide();
  421. var data = $("#frmMember").serialize();
  422. $.ajax({
  423. url : 'join_proc.php',
  424. type: 'POST',
  425. dataType : 'json',
  426. data: data,
  427. success: function(res) {
  428. custom_modal_confirm_close();
  429. $("#btn_join_proc").show();
  430. //세션 종료시 로그인 페이지로 이동
  431. if(res.CODE != "0000") {
  432. custom_opts.title = res.MSG;
  433. if(res.CODE == "4444") {
  434. window.location.href = res.DATAS.URL;
  435. }
  436. custom_modal_alert(custom_opts);
  437. return false;
  438. }
  439. custom_opts.title = '회원 등록이 완료되었습니다.';
  440. custom_opts.event_esc_key = false;
  441. custom_modal_alert(custom_opts, function() {
  442. link("login.php");
  443. });
  444. },
  445. error:function(request,status,error){
  446. $("#btn_join_proc").show();
  447. custom_modal_confirm_close();
  448. alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
  449. }
  450. });
  451. }else {
  452. $("#btn_join_proc").show();
  453. return false;
  454. }
  455. });
  456. // var c=confirm("정보를 등록하시겠습니까?");
  457. // if(c){
  458. // $("#btn_write").hide();
  459. // $("#frmMember").submit();
  460. // }else{
  461. // $("#btn_write").show();
  462. // return false;
  463. // }
  464. });
  465. });
  466. function agreeChkAll(){
  467. if(document.getElementById("agree_all").checked){
  468. document.getElementById("ds_agree1").checked = true;
  469. document.getElementById("ds_agree2").checked = true;
  470. }else{
  471. document.getElementById("ds_agree1").checked = false;
  472. document.getElementById("ds_agree2").checked = false;
  473. }
  474. }
  475. </script>
  476. <script language="javascript">
  477. <!--
  478. function sel_1(sltObj)
  479. {
  480. document.getElementById("nm_email2").value = sltObj;
  481. if (sltObj == "")
  482. {
  483. document.getElementById("nm_email2").readOnly = false;
  484. }else{
  485. document.getElementById("nm_email2").readOnly = true;
  486. }
  487. }
  488. //-->
  489. </script>
  490. <? include("../include/inc_footer.php") ?>
  491. <?
  492. mysql_close($connect);
  493. ?>