| 제목 | 가입 중복시 아이디 체크문제 | ||
|---|---|---|---|
| 글쓴이 | 피자한판두판 | 작성시각 | 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인 경우의 처리를 해주면 됩니다.