제목 | 가입 중복시 아이디 체크문제 | ||
---|---|---|---|
글쓴이 | 피자한판두판 | 작성시각 | 2012/07/15 20:50:38 |
|
|||
<script type="text/javascript" src="/js/jquery-1.7.2.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ $("#all_joinus").click(function(){ var action = $("#all_joinus_form").attr("action"); var ajfData = { username : $("#username").val(), password : $("#password").val(), is_ajax : 1 }; $.ajax({ type:"post", url :action, data: ajfData, success : function(response) { if(response=="success") { alert("success"); location.href="/all/all_joinus_success"; } else { alert("fail"); location.href="/all/all_joinus_fail"; } } }); return false; }); }); </script> <form name="all_joinus_form" id="all_joinus_form" method="post" action="all_joinus_form"> <table align="center" style="width:550px;height:50px;border:3px; #F0003F solid;"> <tr> <td align="right" valign="middle" style="font-size:15px";>UserName</td> <td align="center" valign="middle" style="font-size:15px";> <input type="text" name="username" id="username" value="" style="width:100px;"> </td> </tr> <tr> <td align="right" valign="middle" style="font-size:15px";>PassWord</td> <td align="center" valign="middle" style="font-size:15px";> <input type="password" name="password" id="password" value="" style="width:100px;"> </td> </tr> </table> <table align="center" style="width:550px;height:50px;border:1px; #F1234F solid;"> <tr> <td align="center" valign="middle" style="font-size:15px";> <input type="submit" name="all_joinus" id="all_joinus" value="JOINUS" style="width:80px;"> </td> </tr> </table> </form>뷰에서 사용할때구여.. function all_joinus_form(){ $this->load->model("all_model"); $query = $this->all_model->all_joinus(); if($query) { echo "success"; } else { echo "fail"; } }controll부분이구여 function all_joinus(){ $joinus_insert_data = array( 'username' => $this->input->post('username'), 'password' => $this->input->post('password') ); $insert = $this->db->insert('all_member', $joinus_insert_data); if($insert) { return true; } else { return false; } }model부분입니다 회원가입이나 로그인 체크할떄 아이디중복체크나 그런걸 하잖아요 db에 저장은 되고 이외에 로그인부분도 체크는되는데 가입할떄 아이디를 중복체크해야하는데 그 쿼리부분을 어떻게 짜야할지 생각이 안나네요 일단 입력받은 아이디랑 디비에 있는 아이디에 있는걸 체크해야하는데 디비에는 아이디가 많이 저장되어있는데 그걸 어떻게 가져와서 비교해야하는건지... 그리고 웅파님이 예전에 올려주신 소스를 다운받아서봤는데(cikorea.net -> 게시판 가입 로그인..등등) 참고하려했으나 이해가 잘 안가더라구여.. 어디에서 갔다가 가는건지.. 제가보기엔 소스가너무어려운거같아요 ㅠㅠ 위가 제가 짠 소스인데 부끄럽지만 조언좀부탁드릴게요 게시판도 구현은했으나 따라해본정도밖에 지나지 않아서... |
|||
다음글 | head 내용이 body로 들어오는 문제 (5) | ||
이전글 | session, 툴 (1) | ||
변종원(웅파)
/
2012/07/15 21:20:59 /
추천
0
|
피자한판두판
/
2012/07/15 21:57:48 /
추천
0
웅파// $this->db->select('id'); print_r($result); |
milosz
/
2012/07/16 07:13:07 /
추천
0
if($result->num_rows() > 0) { return TRUE; } else { return FALSE; } |
피자한판두판
/
2012/07/16 09:48:14 /
추천
0
if($query->num_rows() > 0){
for($i=1; $i<=$query->num_rows(); $i++){ $query[0]->id; $query[1]->username; } } 이렇게 생각을 했었는데요.. 저 $i를 어디다 넣어야 할지 모르겠네요 [0]번째 값은 autoincrement 아이디구여 username이 아이디입니다. 갯수는 제대로 불러와지는데 저기서 아이디값만 어떻게 다시 다 뽑을지... .. 추가적으로 궁금한건데... 웅파님께서 올려주신 포럼소스 회원가입 부분은 어디에 있나요? Controller에는 없는거같아서요;; |
milosz
/
2012/07/16 10:23:39 /
추천
0
디테일하게 대충(?) 작성해봤습니다. 액티브레코드라고 기존 php에서 개발 할 때와 크게 다른 점이 없으며 메뉴얼 보시면 각각 해당 부분에 대해 어떻게 작성해야 하는지 잘 설명이 되어 있습니다.
또한 여기에서 단편적으로 질문하시는 것보다 시중에 나와있는 PHP 도서를 보시면 일상적으로 사용되는 로직에 대해 좀더 쉽게 이해하고 접근하실 수 있으리라 봅니다. function is_username_exist($username) { $this->db->where('username', $username); $query = $this->db->get('all_member'); if($query->num_rows() > 0) { return TRUE; } else { return FALSE; } } function all_joinus() { $username = $this->input->post('username'); if( $this->is_username_exist($username) === TRUE ) { return FALSE; } /* extra code */ } 첨언하면 model에서 데이터를 직접 $this->input->post() 식으로 받아오시는 것보다 controller나 library에서 파라미터로 넘겨주는게 좋습니다. 만약 post값을 고정적으로 받으면 같은 역할을 하는 function이 수십개가 될 가능성이 있어요..ㅠㅠ 나름 OOP 하려고 머리를 굴리는게 나중에 손발이 고생하지 않는 길입니다ㅎㅎ |
변종원(웅파)
/
2012/07/16 10:28:49 /
추천
0
피자한판두판/ auth 컨트롤러가 가입, 수정, 로그인, 로그아웃 담당합니다.
포럼 회원가입 클릭하시면 주소가 나오고 그 주소 보시면 컨트롤러, 메소드 나옵니다. (게시판 관련된 부분은 route.php를 이용하기에 모를 수 있습니다만) 그 정도 물어보실 정도면 매뉴얼 다시 보시고 작업 진행하시는 것이 좋을 것 같습니다. |
피자한판두판
/
2012/07/16 10:46:18 /
추천
0
세세한 답변 감사합니다
저렇게 보니 그렇게 어려운 소스도 아닌데 왜 생각을 못했을까 하네요..ㅠㅠ;; |
false나 아이디가 있다는 시그널을 컨트롤러로 보냅니다.
없으면 그냥 insert 하고 기존대로 처리하면 되구요.
컨트롤러에서는 success, fail 뿐만 아니라 모델에서 아이디 중복이라고 왔을 경우에 dup 정도 하나를
더 넘겨주면 됩니다
그러면 뷰에서 다시 dup인 경우의 처리를 해주면 됩니다.