반응형
안녕하세요 이번엔 홈페이지 회원가입 중복확인을 해볼게요
회원가입하는것 중에 반드시 필요한 중복확인이죠
바로 소스 들어갑니다.
일단
join.php에서 코드를 추가해줍니다
join.php |
<script> function chid(){ document.getElementById("chk_id2").value=0; var id=document.getElementById("chk_id1").value; if(id==""){ alert("빈칸 안되요!"); exit; } ifrm1.location.href="join_chk.php?userid="+id; } </script> <html> <head> <title>Join!</title> </head> <body> <center> <form action=join_ok.php method=post name=frmjoin> <table cellpadding=2 cellspacing=2> <tr> <td colspan=2 align=center><b> 회 원 가 입</td></b> </tr> <tr> <td align=center>ID</td> <td><input type=text name=joinid maxlength=15 id="chk_id1"> <input type=button value="중복검사" onclick=chid()></td> <input type=hidden id="chk_id2" name=chk_id2 value="0"> </tr> <tr> <td align=center>비밀번호</td> <td><input type=password name=joinpw maxlength=20></td> </tr> <tr> <td align=center>비밀번호 확인</td> <td><input type=password name=joinpw2 maxlength=20></td> </tr> <tr> <td align=center> E-Mail</td> <td><input type=text name=joinemail maxlength=30></td> </tr> <tr> <td colspan=2 align=center><input type=submit value="가입하기"> <input type=reset value="다시작성"> <input type=button value="취소" onclick="history.back();"> </td> </tr> </table> </form> <iframe src="" id="ifrm1" scrolling=no frameborder=no width=0 height=0 name="ifrm1"></iframe> </body> </html> |
join.php에서 붉은색 부분만 추가하면 됩니다.
1.중복검사 버튼
<input type=button value="중복검사" onclick=chid()></td>
<input type=hidden id="chk_id2" name=chk_id2 value="0">
<input type=hidden id="chk_id2" name=chk_id2 value="0">
중복검사 버튼을 클릭하면 chid()라는 함수를 실행합니다.
hidden은 중복검사를 실행했는지, 안했는지를 판단하는 bool변수라고 생각하시면 됩니다.
2.iframe 으로 중복검사하는 페이지 만들기.
<iframe src="" id="ifrm1" scrolling=no frameborder=no width=0 height=0 name="ifrm1"></iframe>
기본 페이지는 없음, 스크롤 없음, 경계없음 넓이,높이 0으로 해서
눈에 안보이는 iframe을 만들어줍니다. 여기에 중복검사페이지를 불러서 중복
검사를 하게됩니다.
3.chid()함수
아까 중복검사 버튼을 누르면 chid()함수를 불렀었죠??
그 함수가 뭔지 봅시다.
<script>
function chid(){
document.getElementById("chk_id2").value=0;
var id=document.getElementById("chk_id1").value;
if(id==""){
alert("빈칸 안되요!");
exit;
}
ifrm1.location.href="join_chk.php?userid="+id;
}
function chid(){
document.getElementById("chk_id2").value=0;
var id=document.getElementById("chk_id1").value;
if(id==""){
alert("빈칸 안되요!");
exit;
}
ifrm1.location.href="join_chk.php?userid="+id;
}
</script>
일단 bool변수의 값을 0으로 초기화 해줍니다.
그리고 중복검사할 id값을 받아서 변수id에 저장합니다.
그리고 받아온 변수를 iframe으로 띄울 join_chk.php라는 페이지에 GET방식으로
보냅니다.
이제 join_chk.php라는 페이지를 분석해봅시다!
-----------------------------join_chk.php
<?
include "/var/www/html/db_info.php";
include "/var/www/html/db_info.php";
$id=$_GET['userid'];
$query="select count(*) from member where logid='$id'";
$result=mysql_query($query,$conn);
$row=mysql_fetch_array($result);
$query="select count(*) from member where logid='$id'";
$result=mysql_query($query,$conn);
$row=mysql_fetch_array($result);
mysql_close($conn);
?>
<script>
var row="<?=$row[0]?>";
if(row==1){
parent.document.getElementById("chk_id2").value="0";
parent.alert("이미 사용중인 아이디입니다.");
}
else{
parent.document.getElementById("chk_id2").value="1";
parent.alert("사용 가능합니다.");
}
</script>
<script>
var row="<?=$row[0]?>";
if(row==1){
parent.document.getElementById("chk_id2").value="0";
parent.alert("이미 사용중인 아이디입니다.");
}
else{
parent.document.getElementById("chk_id2").value="1";
parent.alert("사용 가능합니다.");
}
</script>
--------------------------------------------------------
include "/var/www/html/db_info.php";
DB를 열어주는 페이지 db_info.php를 include해줍니다.
$id=$_GET['userid'];
GET으로 보낸 userid라는 인자를 id로받아줍니다.
$query="select count(*) from member where logid='$id'";
$result=mysql_query($query,$conn);
$row=mysql_fetch_array($result);
mysql_close($conn);
DB에서 logid필드에서 받아온 id값과 같은 컬럼의 갯수를 세는 쿼리를 만들어
실행합니다.
결과로 나온값을 배열로바꾸어 $row변수에 저장하고 열었던 DBCONNECT를
닫아줍니다.
<script>
var row="<?=$row[0]?>";
if(row==1){
parent.document.getElementById("chk_id2").value="0";
parent.alert("이미 사용중인 아이디입니다.");
}
else{
parent.document.getElementById("chk_id2").value="1";
parent.alert("사용 가능합니다.");
}
</script>
row라는 변수에 php $row변수의 첫번째 값을 저장합니다.
컬럼의 갯수를 센것이기 때문에 같은값이 있으면 1 없으면 0이 됩니다.
있다면 bool변수를 0으로 바꿔주고 iframe의 부모 페이지인 join.php에 alert를
날려줍니다 이미 사용중이라고..
없다면 bool변수를 1로 바꿔주고 사용가능하다고 alert해줍니다.
이로써 중복검사 페이지를완성했습니다.
MintOS 랑 CentOS랑 다른게 있어서 한참 고생했네요 부들부들...
반응형
'IT > PHP' 카테고리의 다른 글
※##]PHP로 홈페이지 만들기>>DB연동하기 (0) | 2017.04.21 |
---|---|
6##]PHP로 홈페이지 만들기>회원가입 페이지 만들기 (0) | 2017.04.21 |
5##]PHP로 홈페이지 만들기>>로그인 페이지 (0) | 2017.04.21 |