사이트의 메인 화면은 필자의 임의로 만들어 봤습니다. 먼저 메인 화면의 경우 그 사이트의 얼굴이며 제공하는 모든 정보를 한눈볼 수 있어야 합니다. 그리고 회원제 사이트일 경우 로그인과 로그아웃 기능이 존재해야 합니다. 그 과정을 하나씩 살펴보겠습니다.
그럼 여기서 우리가 만들 사이트의 메인 화면을 먼저 살펴보겠습니다.
회원제 사이트의 경우 각 회원의 로그인 메뉴와 회원이 아닐 경우 가입하는 부분이 존재합니다. 이 부분을 구현하기 위해서는 각 회원의 정보를 저장할 공간이 필요합니다. 우선 기존에 만들어진 데이터베이스에 회원의 테이블을 생성해도 되지만 여기서는 새로운 데이터베이스를 만들고 거기에 회원들의 정보를 담을 테이블을 생성하겠습니다.
mysql>create databases selectuser ; 테이블을 생성할 데이터베이스를 만들어 줍니다. 여기 사용할 데이터베이스 명은 selectuser이고 여러분이 수정해서 사용해도 됩니다.
./mysql -u root -p userin < userin.sql CD에 있는 userin.sql 파일을 이용해서 userin 테이블을 한 번에 설치하는 방법입니다. 만약 새로운 필드의 추가나 속성을 변경할 경우 mysql 부분을 참고하세요. 일일이 insert 문을 이용해서 입력하는 방법도 있지만 userin.sql 파일을 수정해서 사용하면 더 편합니다.
회원 테이블(userin)을 만약 새롭게 만든 다면 여러분들은 테이블에 사용할 각 인자들에 대한 사전의 계획이
있어야 합니다. 회원들의 정보 중 어느 부분을 저장 할 것인지 명확히 결정한 후 작업을 해야 합니다.
여기에 사용한 부분들은 기본적인 부분이며 여러 가지 새로운 인자들을 사용해 만들어 보기 바랍니다.
name - 회원 이름
id - 회원 고유 아이디
passwd - 회원 암호
resident - 회원 주민 번호
email - 회원 메일 주소
homepage - 회원 홈페이지 주소
address - 회원 주소
wdate - 회원 가입일
uno - 회원 우편번호
tel1 - 회원 휴대폰 번호
tel2 - 회원 집 전화번호
메인 화면의 소스는 총 두개의 파일로 구성 됩니다. 화면을 출력하는 파일(userin.php)과 각 화면들을 함수 형태로 저장한 파일(userin_func.php)입니다. 하나의 파일로 만들어 사용할 수도 있으며 각 부분별로 각각의 파일로 만들 수도 있습니다.
<?php
$connect = mysql_connect('localhost','root','gksmf444');
mysql_select_db('selectuser',$connect);
/*---------- mysql 접속 ----------------*/
function main_userin($sel) {
echo("
<html>
<title>userin_view html</title>
<body bgcolor=black>
<center>
<img src=skyt1.jpg border=0><br>
<form method=post action=userin.php>
<input type=hidden name=chanl value=checkid>
<table border=0 cellspacing=2 cellpadding=2 width=700 >
<font style='font-size:13px;font-style:italic;color:#fffff0>
(*는 필수 입력 부분입니다.)</font>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=submit value=ID중복확인></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=text name=id size=9 maxlength=8>(* 4~8자의 영숫자 조합)</font></td>
</tr>
</form>
<form method=post action=userin.php>
<input type=hidden name=chanl value=in>
<input type=hidden name=sel value=$sel>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~ID</b></fontZ></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=text name=id size=9 maxlength=8>(* 4~8자의 영숫자 조합)</font>*lt;/td>
</tr>
<tr>
<td width=90 bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~Name</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=text name=name size=9>(* 한글 이름)</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~Passwd</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=password name=passwda size=9 maxlength=8>
(* 영숫자 조합 4~8)</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~PasswdRE</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=password name=passwdb size=9 maxlength=8>*</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~Email</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=text name=emaila size=8>@
<input type=text name=emailb size=15>(* sss@sss.sss.ss)
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~HomePG</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>HTTP://
<input type=text name=home size=20>
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~Resident</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=text name=rsda size=7>-
<input type=text name=rsdb size=8>(* 1111-11111)
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~Tel1</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<select name=tela>
<option value=017 selected>017
<option value=018>018
<option value=019>019
<option value=011>011
<option value=016>016
</select>-
<input type=text name=telb size=5>-
<input type=text name=telc size=5>(* 휴대폰 번호)
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~Tel2</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=text name=tel2a size=4>-
<input type=text name=tel2a size=4>-
<input type=text name=tel2b size=5>-
<input type=text name=tel2c size=5>
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~우편번호</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=text name=uno size=4>-
<input type=text name=uno2 size=4>*
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0>
<b>~Address</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=text name=address size=54>* </font></td>
</tr>
<tr>
<td bgcolor=black align=center colspan=4>
<font style='font-size:13px;font-style:italic;color:#fffff0>
<input type=submit value=회원등록>
<input type=reset value=다시></font></td>
</tr>
</table>
</form>
</center>
</body>
</html>
");
}
function error_user($connect,$id,$name,$passwda,$passwdb,$emaila,$emailb,$rsda,$rsdb,$telb,$telc,$uno,$uno2,$address)
{
$ally = mysql_query("select id from userin where id='$id' ",$connect);
$userin = mysql_fetch_array($ally);
if(!$id)
{
echo("
<script>
window.alert('id가 없습니다. 다시 입력해 주세요.')
history.go(-1)
</script>
");
exit;
}
if($userin[id])
{
echo("
<script>
window.alert('같은 id가 있습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if(!ereg("[0-9a-zA-z]",$id) || strlen($id) < 4)
{
echo("
<script>
window.alert('id는 영문숫자 조합 이어야 합니다. 다시 입력하세요')
history.go(-1)
</script>
");
exit;
}
for($n = 0 ; $n < strlen($name) ; $n++)
{
if(ord($name[$n]) <= 0x80)
{
echo("
<script>
window.alert('이름이 없거나 한글이 아닙니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
}
if(!$name)
{
echo("
<script>
window.alert('이름이 없습니다. 이름부터 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if(!$passwda || !$passwdb || $passwda != $passwdb)
{
echo("
<script>
window.alert('passw가 없거나 틀립니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if(!ereg("[0-9a-zA_Z]",$passwda) || strlen($passwda) < 4)
{
echo("
<script>
window.alert('passw는 영숫자 조합 이어야 합니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if(!$emaila || !$emailb)
{
echo("
<script>
window.alert('메일 주소가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if(!ereg("[0-9a-zA_Z]",$emaila) || !ereg("[0-1a-zA_Z]",$emailb))
{
echo("
<script>
window.alert('email은 영숫자 조합 이어야 합니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
$rsdno = "234567892345";
$rsdin = $rsda.$rsdb ;
$rsdchecka = substr($rsdin,$n,1);
$rsdcheckb = substr($rsdno,$n,1);
for ($n = 0 ; $n < 12 ; $n++)
{
$rsdall = $rsdall + $rsdchecka*$rsdcheckb ;
}
$rsdcheck = "11" - "($rsdall % 11)";
$rsdb2 = substr($rsdb,0,1);
$rsdcheck2 = substr($rsdcheck,-1,1);
$rsdcheck3 = substr($rsdb,-1,1);
$rsdcheck4 = ereg("[1-4]",$rsdb2);
if(!$rsdcheck4 || $rsdcheck2 != $rsdcheck3)
{
echo("
$rsdcheck2
$rsdcheck3
<script>
window.alert('주민번호111가 틀립니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if(!$rsda || !$rsdb)
{
echo("
<script>
window.alert('주민번호가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if(!$telb || !$telc)
{
echo("
<script>
window.alert('전화번호가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
exit;
}
if(!$uno || !$uno2)
{
echo("
<script>
window.alert('우편번호가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if(!$address)
{
echo("
<script>
window.alert('주소가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
}
function main_view($username,$connect)
{
mysql_select_db(adminp,$connect);
$ally = mysql_query("select no,title,mview,view from admin order by no ",$connect);
$ally2 = mysql_query("select no,title,mview,view from file order by no ",$connect);
$put = mysql_fetch_array($ally);
$put2 = mysql_fetch_array($ally2);
mysql_select_db('libchal',$connect);
$allya = mysql_query("select no,title,hit from $put[mview] order by hit desc",$connect);
$allyb = mysql_query("select no,title,hit from $put2[mview] order by hit desc",$connect );
$put3 = mysql_fetch_array($allya);
$put4 = mysql_fetch_array($allyb);
$t_num=mysql_num_rows($ally);
$t_num2=mysql_num_rows($ally2);
$wdate = date('H:i:s');
if($username) {
$sslogin = "$username login 했습니다.";
$chat_mod ="<a href ='userin.php?chanl=chat&username=$username' >";
}
if(!$username) {
$sslogin = "Login 하세요~!";
$userss = "<a href ='userin.php?chanl=main'>";
}
if($username == guest)
{
$sslogin = "$username login 했습니다.";
$userss = "<a href ='userin.php?chanl=main'>";
}
echo("
<html>
<title>
main_view html
</title>
<body bgcolor=black>
<center>
<img src=skyt1.jpg border=0>
</br>
<font style='font-size:12px;color:gray'>
$sslogin
</font>
<br>
<br>
<table border=0 cellspacing=2 cellpadding=2 width=500 >
<tr>
<font style='font-size:12px;color:gray'>
$userss
(회원 가입)
</a>
(geust입장은 id에 guest입력)
$chat_mod
(Chating)
</a>
</font>
<form method=post action=userin.php>
<input type=hidden name=chanl value=login>
<td width=90 bgcolor=#808080 align=center>
<font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~ID</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=id size=9></font></td>
<td width=50 bgcolor=black>
<img src=icon.jpg border=0 align=center>
</td>
<td bgcolor=black align=left>
<font style='font-size:13px;text-decoration:none;font-style:italic;color:blue'>
<a href ='m.php?chanl=main_view&f=$put2[mview]&f2=$put2[view]&ssid=$username' >
<font style='font-size:13px;text-decoration:none;font-style:italic;color:blue'>
$put2[title]</font></a>
</td>
</tr>
<tr>
<td width=90 bgcolor=#808080>
<font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Passwd</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=password name=passwd size=9></font></td>
<td width=50 bgcolor=black align=left>
<img src=icon.jpg border=0 align=center>
</td>
<td bgcolor=black align=left>
<a href='main_view.php?chanl=main_view&f=$put[mview]
&f2=$put[view]&ssid=$username' >
<font style='font-size:13px;text-decoration:none;font-style:italic;color:blue'>
$put[title]</font></a></td>
</tr>
<tr>
<td width=90 bgcolor=black>
<input type=submit value=Login>
</form>
</td>
<form method=post action=userin.php>
<input type=hidden name=chanl value=logout>
<td bgcolor=black>
<input type=submit value=Logout>
</form>
</td>
<td width=50 bgcolor=black>
<img src=icon.jpg border=0 align=center>
</td>
<td bgcolor=black align=left>
<font style='font-size:13px;text-decoration:none;font-style:italic;color:blue'>
<form method=post action=shop.php>cry~
<select name=sel>
<option value=1 selected>전자제품
<option value=2>의류
<option value=3>음악
<option value=4>책
</select>!shop</font>
<input type=submit value=~Go>
</td>
</form>
</tr>
</table>
");
echo("
<br>
<table border=0 cellspacing=2 cellpadding=2 width=700 >
<td bgcolor=black align=center width=200>
<font style='font-size:13px;font-style:italic;color:white'>
<img src=icon.jpg border=0 align=center>Top 자료</font></td>
<td bgcolor=black align=left width=500>
<a href ='m.php?chanl=title&no=$put4[no]&f=$put2[mview]
&f2=$put2[view]&ssid=$username' >
<font style='font-size:13px;text-decoration:none;font-style:italic;color:gray'>
<strong>$put4[title]</strong></font></a></td>
<tr>
<td bgcolor=black align=center width=200>
<font style='font-size:13px;font-style:italic;color:white'>
<img src=icon.jpg border=0 align=center>Top 경매</font></td>
<td bgcolor=black align=left width=500>
<a href ='main_view.php?chanl=title&no=$put3[no]&f=$put[mview]
&f2=$put[view]&ssid=$username' >
<font style='font-size:13px;text-decoration:none;font-style:italic;color:gray'>
<strong>$put3[title]</strong></font></a></td>
</tr>
</table>");
echo("
<table border=0 cellspacing=2 cellpadding=2 width=300 >
<tr>
<td colspan=2 bgcolor=#808080 align=center>
<font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~File bang list</b></font></td>
</tr>
");
for($pd=1 ; $pd < $t_num2 ; $pd++)
{
$put2 = mysql_fetch_array($ally2);
echo("
<tr>
<td bgcolor=black align=center width=200>
<img src=icon.jpg border=0 align=center></td>
<td bgcolor=black align=left width=500>
<a href ='m.php?chanl=main_view&f=$put2[mview]&f2=$put2[view]&ssid=$username' >
<font style='font-size:13px;text-decoration:none;font-style:italic;color:gray'>
<strong>$put2[title]</strong></font></a></td>
</tr>
");
}
echo("
<table border=0 cellspacing=2 cellpadding=2 width=300 >
<tr>
<td colspan=2 bgcolor=#808080 align=center>
<font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~경매 bang list</b></font></td>
</tr>
");
for($pd=1 ; $pd < $t_num ; $pd++)
{
$put = mysql_fetch_array($ally);
echo("
<tr>
<td bgcolor=black align=center width=200>
<img src=icon.jpg border=0 align=center></td>
<td bgcolor=black align=left width=500>
<a href ='main_view.php?chanl=main_view&f=$put[mview]
&f2=$put[view]&ssid=$username' >
<font style='font-size:13px;text-decoration:none;font-style:italic;color:gray'>
<strong>$put[title]</strong></font></a></td>
</tr>
");
}
echo("
</table>
</center>
</body>
<html>
");
}
?>
메인 화면의 각 부분들을 구성하는 화면을 함수 형태로 저장한 파일입니다.
userin_func.php 파일 내의 함수는 메인 화면의 또 다른 기능을 추가할 경우 함수만 추가해서 사용하면 됩니다.
$connect = mysql_connect('localhost','root','gksmf444');
/* Mysql을 접속하기 위한 호스트 명과 아이디, 패스워드를 입력 합니다.
여기에 사용한 호스트와 아이디, 패스워드는 여러분들이 새로 만들었다면 그것을 적어주면 됩니다. */
mysql_select_db('selectuser',$connect);
/* Mysql의 데이터베이스를 선택합니다. */
처음 메인 화면에 접속하고 회원 가입을 클릭했을 경우 출력하는 부분입니다.
<form method=post action=userin.php>
/* 이 form문을 이용해서 입력된 값을 userin.php 파일로 전송합니다. */
<input type=hidden name=chanl value=checkid>
/* userin.php 파일의 $chanl=checked 항목을 선택합니다. */
<table border=0 cellspacing=2 cellpadding=2 width=700 >
<font style='font-size:13px;font-style:italic;color:#fffff0'>
(*는 필수 입력 부분입니다.)</font>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=submit value=ID중복확인></font></td>
/* 입력한 ID를 전송 하기 위한 버튼(submit)을 만듭니다. */
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=id size=9 maxlength=8>(* 4~8자의 영숫자 조합)</font></td>
/* ID의 입력은 최대 8자만 가능하게 합니다. */
</tr>
</form>
<form method=post action=userin.php>
<input type=hidden name=chanl value=in>
<input type=hidden name=sel value=$sel>
/* 이 form 문은 위 ID중복 확인 문 이후의 모든 입력을 전달하는 부분이고, userin.php 파일의 $chanl=in 항목과
$sel의 해당항목(chanl=in)의 수행 후 되돌아갈 화면을 선택하는 부분입니다. 즉, 메인 화면을 통해 회원 가입
화면에 왔을 경우 $sel 값은 아물孤 없습니다. 그럴 경우 회원 가입 수행 후 다시 메인 화면으로 돌아옵니다. */
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~ID</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=id size=9 maxlength=8>(* 4~8자의 영숫자 조합)</font></td>
/* 사용할 ID를 입력하는 부분입니다. 최대 입력 글은 8자로 제한합니다. */
</tr>
<tr>
<td width=90 bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Name</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=name size=9>(* 한글 이름)</font></td>
/* 이름의 입력 값은 name 변수로 회원 이름을 입력 받습니다. */
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Passwd</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=password name=passwda size=9 maxlength=8>
(* 영숫자 조합 4~8)</font></td>
</tr>
/* 회원의 ID에 사용할 패스워드를 입력하는 부분입니다. 최대 크기는 8로 합니다. Input type는 password로 설정합니다.
이것은 화면에 *****게 표시해 다른 사람이 보지 못하게 하는 것입니다. */
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~PasswdRE</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=password name=passwdb size=9 maxlength=8>*</font></td>
</tr>
/* 사용할 패스워드의 재확인 입력란을 만듭니다. 최대 입력 크기는 8입니다.
이 항목 역시 type=password로 설정하며 전달 받는 인자는 passwdb입니다. */
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Email</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=emaila size=8>@
<input type=text name=emailb size=15>(* sss@sss.sss.ss)
/* @를 중심으로 두개의 입력란을 생성하고 차례로 emaila, emailb 변수로 메일 주소를 입력받습니다. */
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~HomePG</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
HTTP://
<input type=text name=home size=20>
/* HTTP:// 항목을 출력하고 home 인자로 사용자 홈페이지 주소를 입력 받습니다. */
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Resident</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=rsda size=7>-
<input type=text name=rsdb size=8>(* 1111-11111)
/* - 기호를 중심으로 두개의 변수(rsda , rsdb)로 사용자 주민 번호를 입력합니다. */
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Tel1</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<select name=tela>
<option value=017 selected>017
<option value=018>018
<option value=019>019
<option value=011>011
<option value=016>016
</select>-
/* select 문을 사용해서 현재 서비스 중인 휴대폰 회사를 선택하게 합니다. tela 변수에 저장 됩니다. */
<input type=text name=telb size=5>-
<input type=text name=telc size=5>(* 휴대폰 번호)
/* 각각 휴대폰 마지막 번호를 입력하는 부분입니다. 전달 인자는 차례로 telb , telc입니다. */
</font></td>
</tr>
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Tel2</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=tel2a size=4>-
<input type=text name=tel2b size=5>-
<input type=text name=tel2c size=5>
</font></td>
</tr>
/* 지역 번호를 포함한 3개의 변수로 저장합니다. 각각 tel2a , tel2b , tel2c 입니다. */
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~우편번호</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=uno size=4>-
<input type=text name=uno2 size=4>*
</font></td>
</tr>
/* 우편 번호를 입력하는 부분입니다. 두개의 입력란을 -로 구분하며 각각 uno , uno2 변수로 입력 번호를 전달합求. */
<tr>
<td bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Address</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=address size=54>* </font></td>
/* 주소를 입력하는 부분입니다. 주소 입력은 보다 사용자 중심의 입력 형태로 만들 수 있습니다.
즉 해당 도시와 해당동 등의 입력을 자동으로 찾게 하는 방법인데, 이것은 전국의 주소와 우편번호를 가진
데이터베이스 파일이 있어야 하며 인터넷 상에서 쉽게 구할 수 있습니다.
여기서는 회원의 임의로 적을 수 있도록 했습니다. 만약 회원이 쇼핑을 하고 물건을 구매한다면 이 주소란을
정확히 입력 해야만 배달이 될 것입니다. */
</tr>
<tr>
<td bgcolor=black align=center colspan=4>
<font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=submit value=회원등록>
/* 회원등록 버튼을 생성합니다. 이것은 위 입력 항목들의 값을 userin.php 파일로 전달합니다. */
<input type=reset value=다시></font></td>
/* 다시 버튼을 생성합니다. type=reset이며 이것은 입력 항목을 전부 다시 입력할 때 사용합니다. */
</tr>
</table>
</form>/* 중복 ID 검사 form문 이후 두 번째 form문의 끝입니다. */
</center>
</body>
</html>
");
회원 가입 입력란의 입력 조건을 부여 합니다.
즉, 회원 가입 항목 중 사용자가 부정확하게 입력할 경우 에러 화면을 출력 하는 부분 입니다.
error_user($connect,$id,$name,$passwda,$passwdb,$emaila,$emailb,$rsda,$rsdb,$telb,$telc,$uno,$uno2,$address)
/* 각 전달 인자는 회원 입력 화면에서 입력 했던 값을 전달 하는 변수들 입니다. 그리고,
$connect의 경우 mysql을 접속 하는 변수 입니다. */
if(!$id)
{
echo("
<script>
window.alert('id가 없습니다. 다시 입력해 주세요.')
history.go(-1)
</script>
");
exit;
}
/* $id 값이 없을 경우 출력하는 화면 입니다. */
if($userin[id])
{
echo("
<script>
window.alert('같은 id가 있습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* $userin[id] 값이 존재할 경우 같은 id가 있는 것이므로 해당 화면을 출력 합니다. */
if(!ereg("[0-9a-zA-z]",$id) || strlen($id) < 4)
{
echo("
<script>
window.alert('id는 영문숫자 조합 이어야 합니다. 다시 입력하세요')
history.go(-1)
</script>
");
exit;
}
/* 전달 되어온 $id 값이 숫자와 영문 중 4자 보다 작을 경우 에러를 출력 합니다.
즉,ereg 함수를 사용해서 [0-9a-zA-z] 숫자와 영문대소문자가 아니면 에러를 출력 하고 또는 strlen 함수를
사용해서 전달되어온 인자 중 문자수가 4보다 작을 嚥 에러를 출력 합니다. */
for($n = 0 ; $n < strlen($name) ; $n++)
{
if(ord($name[$n]) <= 0x80)
{
echo("
<script>
window.alert('이름이 없거나 한글이 아닙니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
}
/* 전달 되어온 회원 이름이 한글인지 아닌지 체크 하고 아닐 경우 에러 화면을 출력 합니다. */
if(!$name)
{
echo("
<script>
window.alert('이름이 없습니다. 이름부터 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 회원 이름이 입력 되지 않았을 경우 출력 되는 화면 입니다. */
if(!$passwda || !$passwdb || $passwda != $passwdb)
{
echo("
<script>
window.alert('passw가 없거나 틀립니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 회원 가입 항목 중 패스워드 부분과 패스워드 확인 부분의 인자가 없을 경우 또는 둘이 같지 않을 경우
에러 화면을 출력 합니다. */
if(!ereg("[0-9a-zA_Z]",$passwda) || strlen($passwda) < 4)
{
echo("
<script>
window.alert('passw는 영숫자 조합 이어야 합니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 패스워드가 영문 대소문자나 숫자가 아닐 경우 또는 전달 되어온 문자가 4자 보다 작을 경우 에러 화면을 출력 합니다. */
if(!$emaila || !$emailb)
{
echo("
<script>
window.alert('메일 주소가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 메일 주소 항목이 없을 경우 출력 하는 화면 입니다. */
if(!ereg("[0-9a-zA_Z]",$emaila) || !ereg("[0-1a-zA_Z]",$emailb))
{
echo("
<script>
window.alert('email은 영숫자 조합 이어야 합니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 전달 되어온 두개의 메일 주소 인자에 대해 영문 대소문자 와 숫자가 아니면 에러 화면을 출력 합니다. */
$rsdno = "234567892345";
$rsdin = $rsda.$rsdb ;
/* 전달 되어온 두개의 주민 번호 인자를 하나로 만듭니다. */
$rsdchecka = substr($rsdin,$n,1);
/* 전달 되어온 주민 번호 인자 입니다. */
$rsdcheckb = substr($rsdno,$n,1);
for ($n = 0 ; $n < 12 ; $n++)
{
$rsdall = $rsdall + $rsdchecka*$rsdcheckb ;
}
$rsdcheck = "11" - "($rsdall % 11)";
$rsdb2 = substr($rsdb,0,1);
/* 주민 번호 두 번째 인자의 처음 숫자를 추출 합니다. */
$rsdcheck2 = substr($rsdcheck,-1,1);
/* 주민 번호의 마지막 자리 숫자를 추출 합니다. */
$rsdcheck3 = substr($rsdb,-1,1);
/* 주민 번호의 마지막 자리 숫자를 추출 합니다. */
$rsdcheck4 = ereg("[1-4]",$rsdb2);
/* 주민 번호 두 번째 인자의 처음 숫자가 1~4 중 하나 인지 체크 합니다. */
if(!$rsdcheck4 || $rsdcheck2 != $rsdcheck3)
{
echo("
$rsdcheck2
$rsdcheck3
<script>
window.alert('주민번호111가 틀립니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 주민 번호 두 번째 인자가 1~4 중 하나가 아닐 경우 또는 두 번째 인자 마지막 숫자가
일치 하지 않을 경우 에러를 출력 합니다. */
if(!$rsda || !$rsdb)
{
echo("
<script>
window.alert('주민번호가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 주민 번호 두 인자가 없을 경우 에러를 출력 합니다. */
if(!$telb || !$telc)
{
echo("
<script>
window.alert('전화번호가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 휴대폰 번호 두 인자 중 하나가 없을 경우 에러 화면을 출력 합니다. */
if(!$uno || !$uno2)
{
echo("
<script>
window.alert('우편번호가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 우편 번호 두 인자 중 하나가 없을 경우 에러 화면을 출력 합니다. */
if(!$address)
{
echo("
<script>
window.alert('주소가 없습니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 주소가 없을 경우 출력 하는 화면 입니다. */
사이트의 메인 화면을 출력 하는 함수 입니다. 이장의 처음 메인 화면 그림을 참고 하세요.
main_view($username,$connect)
/* $username는 해당 ID의 세션으로 만들어진 유저 ID를 전달 받기 위함 입니다.
즉 메인 화면의 로그인 상태를 보여 주기 위해서 입니다. $connect는 Mysql 접속 변수 입니다. */
mysql_select_db(adminp,$connect);
/* adminp 데이터 베이스를 선택 합니다.
이것은 뒤 데이터 베이스 유틸리티를 만들 때 생성하는 데이터 베이스이 자료실과 경매 게시판의 정보를 담고 있습니다. */
$ally = mysql_query("select no,title,mview,view from admin order by no ",$connect);
/* adminp 데이터 베이스에 admin 테이블(경매 게시판)의 인자를 검색 합니다.
no - 게시판 번호 , title - 게시판 제목 , mview - 게시판 첫 번째 테이블 명 , view - 게시판 두 번째 테이블 명 */
$ally2 = mysql_query("select no,title,mview,view from file order by no ",$connect);
/* adminp 데이터 베이스에 file 테이블(자료실 게시판)의 인자를 검색 합니다. */
$put = mysql_fetch_array($ally);
$put2 = mysql_fetch_array($ally2);
/* 변수 put , put2로 각 검색 결과를 배열로 저장 합니다. */
mysql_select_db('libchal',$connect);
/* libchal 데이터 베이스를 선택 합니다. */
$allya = mysql_query("select no,title,hit from $put[mview] order by hit desc",$connect);
/* libchal 데이터 베이스에서 해당 경매 게시판 테이블 중 히트 수가 가장 높은 글을 검색 합니다. */
$allyb = mysql_query("select no,title,hit from $put2[mview] order by hit desc",$connect );
/* libchal 데이터 베이스에서 해당 자료실 게시판 테이블 중 히트 수가 가장 높은 글을 검색 합니다. */
$put3 = mysql_fetch_array($allya);
$put4 = mysql_fetch_array($allyb);
/* put3 , put4 변수에 해당 검색 결과를 배열로 저장 합니다. */
$t_num=mysql_num_rows($ally);
$t_num2=mysql_num_rows($ally2);
/* 각 검색 결과의 수를 변수에 저장 합니다. */
$wdate = date('H:i:s');
/* 해당 변수에 지금 날짜를 저장 합니다. */
if($username)
{
$sslogin = "$username login 했습니다.";
/* 등록된 ID로 접속 했을 경우 해당 ID를 변수에 저장 합니다. */
$chat_mod ="<a href ='userin.php?chanl=chat&username=$username' >";
/* 등록된 ID로 접속 했을 경우 해당 ID로 채팅 모드를 링크 합니다. */
}
if(!$username)
{
$sslogin = "Login 하세요~!";
$userss = "<a href ='userin.php?chanl=main'>";
}
/* 등록된 ID로 접속을 하지 않았을 경우 각 변수 입니다. */
if($username == guest)
{
$sslogin = "$username login 했습니다.";
$userss = "<a href ='userin.php?chanl=main'>";
}
/* 접속한 ID가 guest일 경우 변수 값들 입니다. */
<tr>
<font style='font-size:12px;color:gray'>
$userss
(회원 가입)
</a>
/* 등록된 ID 가 아닐 경우 회원 가입을 링크 합니다. */
(gest입장은 id에 guest입력)
$chat_mod
(Chating)
</a>
</font>
/* 등록된 ID로 로그인 했을 경우 채팅 모드를 링크 합니다. */
<form method=post action=userin.php>
<input type=hidden name=chanl value=login>
/* ID 입력 항목의 form문의 시작 입니다. Chanl 변수의 값은 login 이며 userin.php에 전달 합니다. */
<td width=90 bgcolor=#808080 align=center>
<font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~ID</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=text name=id size=9></font></td>
/* 등록된 ID를 입력 하는 항목을 출력 하고, id 변수로 입력 됩니다. */
<td width=50 bgcolor=black>
<img src=icon.jpg border=0 align=center>
</td>
<td bgcolor=black align=left>
<font style='font-size:13px;text-decoration:none;font-style:italic;color:blue'>
<a href ='m.php?chanl=main_view&f=$put2[mview]&f2=$put2[view]&ssid=$username' >
/* 등록된 자료실 게시판의 처음 자료실을 링크 합니다.
자료실 테이블의 실행은 m.php파일이며 f,f2는 해당 자료퓽 테이블 입니다.
그리고, ssid는 로그인한 ID 입니다. */
<font style='font-size:13px;text-decoration:none;font-style:italic;color:blue'>
$put2[title]</font></a>
</td>
</tr>
<tr>
<td width=90 bgcolor=#808080><font style='font-size:13px;font-style:italic;color:#fffff0'>
<b>~Passwd</b></font></td>
<td bgcolor=black><font style='font-size:13px;font-style:italic;color:#fffff0'>
<input type=password name=passwd size=9></font></td>
/* 해당 ID의 패스워드를 입력하는 부분 이며 passwd 변수에 저장 됩니다. */
<td width=50 bgcolor=black align=left>
<img src=icon.jpg border=0 align=center>
</td>
<td bgcolor=black align=left>
<a href ='main_view.php?chanl=main_view&f=$put[mview]&f2=
/* 등록된 경매 게시판의 처음 경매를 링크 합니다. */
$put[view]&ssid=$username' >
<font style='font-size:13px;text-decoration:none;font-style:italic;color:blue'>
$put[title]</font></a></td>
</tr>
<tr>
<td width=90 bgcolor=black>
<input type=submit value=Login>
</form>
/* 등록된 ID와 패스워드로 로그인 하는 버튼을 생성 합니다. */
</td>
<form method=post action=userin.php>
<input type=hidden name=chanl value=logout>
<td bgcolor=black>
<input type=submit value=Logout>
</form>
</td>
/* 로그인 한 ID를 로그아웃 하는 버튼을 생성 합니다. userin.php 파일의 chanl=logout 항목을 실행 합니다. */
<td bgcolor=black align=left>
<font style='font-size:13px;text-decoration:none;font-style:italic;color:blue'>
<form method=post action=shop.php>cry~
<select name=sel>
<option value=1 selected>전자제품
<option value=2>의류
<option value=3>음악
<option value=4>책
</select>!shop</font>
<input type=submit value=~Go>
</td>
</form>
/* sel 변수로 각 쇼핑 몰에의 종류를 전달 합니다. 그리고 Go 버튼을 생성 합니다. */
<table border=0 cellspacing=2 cellpadding=2 width=700 >
<td bgcolor=black align=center width=200>
<font style='font-size:13px;font-style:italic;color:white'>
<img src=icon.jpg border=0 align=center>Top 자료</font></td>
<td bgcolor=black align=left width=500>
<a href ='m.php?chanl=title&no=$put4[no]&f=$put2[mview]&f2=
$put2[view]&ssid=$username' >
/* 해당 자료실의 히트 수가 제일 높은 자료를 링크 합니다. */
<font style='font-size:13px;text-decoration:none;font-style:italic;color:gray'>
<strong>$put4[title]</strong></font></a></td>
/* $put4[title]은 등록된 자료실의 히트 수가 제일 높은 자료를 출력 합니다. */
<tr>
<td bgcolor=black align=center width=200>
<font style='font-size:13px;font-style:italic;color:white'>
<img src=icon.jpg border=0 align=center>Top 경매</font></td>
<td bgcolor=black align=left width=500>
<a href ='main_view.php?chanl=title&no=$put3[no]&f=
$put[mview]&f2=$put[view]&ssid=$username' >
/* 등록된 경매 중 히트 수가 제일 높은 경매를 링크 합니다. */
<font style='font-size:13px;text-decoration:none;font-style:italic;color:gray'>
<strong>$put3[title]</strong></font></a></td>
/* $put3[title]는 등록된 경매 중 히트 수가 제일 높은 경매를 출력 합니다. */
</tr>
</table>
이것은 데이터 베이스 admin에서 새롭게 생성했던 자료실에 대해 화면에 출력 하는 부분 입니다.
for($pd=1 ; $pd < $t_num2 ; $pd++)
{
/* $t_num2는 등록된 자료실의 수 입니다. */
$put2 = mysql_fetch_array($ally2);
/* 해당 자료실의 정보를 배열로 저장 합니다. $ally2 변수는 해당 자료실의 정보를 가지고 있습니다. */
echo("
<tr>
<td bgcolor=black align=center width=200>
<img src=icon.jpg border=0 align=center></td>
<td bgcolor=black align=left width=500>
<a href ='m.php?chanl=main_view&f=$put2[mview]&f2=$put2[view]&ssid=$username' >
/* 등록된 자료실을 하나씩 링크 합니다. For문에 의해서 실행 합니다. */
<font style='font-size:13px;text-decoration:none;font-style:italic;color:gray'>
<strong>$put2[title]</strong></font></a></td>
</tr>
/* 등록된 자료실의 제목을 하나씩 출력 합니다.
이것은 제일 처음 메인 화면에 출력한 자료실을 제외한 그 다음 米溯퓟壙 입니다. */
");
}
for($pd=1 ; $pd < $t_num ; $pd++)
{
/* $t_num 은 만든 경매 게시판의 총 수 입니다. */
$put = mysql_fetch_array($ally);
/* 해당 경매 게시판의 정보를 배열로 저장 합니다. */
echo("
<tr>
<td bgcolor=black align=center width=200>
<img src=icon.jpg border=0 align=center></td>
<td bgcolor=black align=left width=500>
<a href ='main_view.php?chanl=main_view&f=$put[mview]&f2=
$put[view]&ssid=$username' >
/* 해당 경매 게시판을 하나씩 링크 합니다. For문에 의해 현재 만들어진 게시판의 수만큼 되풀이 합니다. */
<font style='font-size:13px;text-decoration:none;font-style:italic;color:gray'>
<strong>$put[title]</strong></font></a></td>
</tr>
/* 해당 게시판의 제목을 출력 합니다. */
");
}
userin_func.php 파일의 함수들을 이용해서 화면에 출력하는 파일 입니다.
<?php
include('userin_func.php');
if($chanl == main_view || !$chanl)
{
main_view($username,$connect);
}
if($chanl == main)
{
main_userin($sel);
}
if($chanl == in)
{
error_user($connect,$id,$name,$passwda,$passwdb,$emaila,$emailb,$rsda,$rsdb,$telb,$telc,$uno,$uno2,$address);
$wdate = date('y-m-d');
$resident = "$rsda-$rsdb" ;
$email = "$emaila@$emailb" ;
$tel1 = "$tela-$telb-$telc" ;
$tel2 = "$tel2a-$tel2b-$tel2c" ;
$uno = "$uno-$uno2" ;
mysql_query("insert into userin(name,id,passwd,resident,email,homepage,address,tel1,tel2,wdate,uno)
values('$name','$id',password('$passwda'),'$resident','$email',
'$home','$address','$tel1','$tel2','$wdate','$uno')",$connect);
if($sel == user_edit)
{
echo("
<html>
<body>
<center>
<form method=post action=db_view.php>
<font style='font-size:13px;font-style:italic;color:#808080'>
<b>회원 가입이 되었습니다.</b></font>
<input type=hidden name=chanl value=user_edit>
<input type=submit value=확인>
</form>
</center>
</body>
</html>
");
}
else
{
echo("
<html>
<body>
<center>
<form method=post action=userin.php>
<font style='font-size:13px;font-style:italic;color:#808080'>
<b>회원 가입이 되었습니다.</b></font>
<input type=hidden name=no value=$no>
<input type=hidden name=chanl value=main_view>
<input type=submit value=확인>
</form>
</center>
</body>
</html>
");
}
}
if($chanl == checkid)
{
$ally = mysql_query("select id from userin where id='$id'",$connect);
$userin = mysql_fetch_array($ally);
if($userin[id] || !$id)
{
echo("
<script>
window.alert('같은 id가 있거나 공란 입니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
else
{
echo("
<script>
window.alert('사용 가능한 id 입니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
}
if($chanl == login)
{
$ally = mysql_query("select id,passwd from userin where id='$id'",$connect);
$userin = mysql_fetch_array($ally);
$passwput = mysql_query("select password('$passwd')");
$passwput1 = mysql_result($passwput,0,0);
if($userin[passwd] != $passwput1 || !$id )
{
echo("
<script>
window.alert('id,passw가 틀립니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
if($userin[passwd] == $passwput1 && $userin[id] == $id || $id == guest)
{
session_start();
$username = "$id";
session_register( "username");
main_view($username,$connect);
}
else
{
echo("
<script>
window.alert('id,passw가 틀립니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
}
if($chanl == chat)
{
echo("
<html>
<body>
<center>
<script>
window.open('chat.php','send','height=100px width=325px')
window.open('chat_view.php','send2','height=200px width=325px')
</script>
</center>
</body>
</html>
");
main_view($username,$connect);
}
if($chanl == logout)
{
session_start();
session_destroy("username");
main_view($username,$connect);
}
?>
이 파일은 userin_func.php 파일의 함수들을 보다 다양한 방법으로 화면에 출력 하게끔 구성된 파일 입니다.
단순히 if문의 나열만 존재 하지만 이것은 $chanl 이라는 변수를 둠으로 해서 각각의 chanl에 따라 출력 하는
화면이 달라 집니다.
<?php
include('userin_func.php');
/* userin_func.php 파일을 포함 합니다. 이것은 이 파일 안의 함수들을 사용 하기 위함 입니다. */
if($chanl == main_view || !$chanl)
{
main_view($username,$connect);
}
/* $chanl 이 없거나 또는 main_view 일때 메인 화면을 출력 합니다. */
if($chanl == main)
{
main_userin($sel);
}
/* $chanl 이 main 일 때 회원 가입 화면을 출력 합니다. */
if($chanl == in)
{
error_user($connect,$id,$name,$passwda,$passwdb,$emaila,$emailb,$rsda,$rsdb,$telb,$telc,$uno,$uno2,$address);
/* $chanl이 in일 때 전달 되어온 회원 정보를 입력 하는 부분 이며 각 인자들에 대해 에러 여부를 체크 합니다. */
$wdate = date('y-m-d');
$resident = "$rsda-$rsdb" ;
$email = "$emaila@$emailb" ;
$tel1 = "$tela-$telb-$telc" ;
$tel2 = "$tel2a-$tel2b-$tel2c" ;
$uno = "$uno-$uno2" ;
/* 주민번호 , 메일 , 전화번호 , 우편번호에 대해 각각의 형식에 맞게 만듭니다. */
mysql_query("insert into userin(name,id,passwd,resident,email,homepage,address,tel1,tel2,wdate,uno)
values('$name','$id',password('$passwda'),'$resident','$email',
'$home','$address','$tel1','$tel2','$wdate','$uno')",$connect);
/* 전달 되어온 각 회원 정보가 에러가 없다면 userin 테이블에 입력 합니다. */
if($sel == user_edit)
{
/* $sel 이 user_edit 이면 admin 항목에서 일반 유저를 등록한 것이며, 새로운 회원을 등록 시킨 후 다시
admin 항목으로 되돌아 갑니다. */
echo("
<html>
<body>
<center>
<form method=post action=db_view.php>
<font style='font-size:13px;font-style:italic;color:#808080'>
<b>회원 가입이 되었습니다.</b></font>
<input type=hidden name=chanl value=user_edit>
<input type=submit value=확인>
</form>
</center>
</body>
</html>
");
}
else
{
/* else 경우 $sel 값이 없는 경우 이며, 일반 사용자들이 회원 가입을 할 경우 가입한 후에 다시
메인 화면으로 이동합니다. */
echo("
<html>
<body>
<center>
<form method=post action=userin.php>
<font style='font-size:13px;font-style:italic;color:#808080'>
<b>회원 가입이 되었습니다.</b></font>
<input type=hidden name=no value=$no>
<input type=hidden name=chanl value=main_view>
<input type=submit value=확인>
</form>
</center>
</body>
</html>
");
}
}
if($chanl == checkid)
{
$ally = mysql_query("select id from userin where id='$id'",$connect);
$userin = mysql_fetch_array($ally);
/* $chanl이 checkid일 경우 수행하며, userin테이블에서 전달 되어온 ID의 존재 여부를 검색 하고 결과를
배열로 저장 합니다. */
if($userin[id] || !$id)
{
echo("
<script>
window.alert('같은 id가 있거나 공란 입니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 전달 되어온 ID가 없거나 또는 해당 ID가 userin 테이블에 있을 경우 출력 하는 화면 입니다. */
else
{
echo("
<script>
window.alert('사용 가능한 id 입니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 그 밖의 경우 사용 가능한 ID임을 출력 합니다. */
}
if($chanl == login)
{
$ally = mysql_query("select id,passwd from userin where id='$id'",$connect);
$userin = mysql_fetch_array($ally);
$passwput = mysql_query("select password('$passwd')");
$passwput1 = mysql_result($passwput,0,0);
/* $chanl이 login일 때 userin테이블에서 전달 되어온 ID에 대해 검색하고, 결과를 배열로 저장 합니다.
그리고, 전달되어온 패스워드를 암호화 해서 변수에 저장 합니다. */
if($userin[passwd] != $passwput1 || !$id )
{
echo("
<script>
window.alert('id,passw가 틀립니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 전달 되어온 ID가 없거나 또는 전달 되어온 패스워드와 검색한 패스워드가 같지 않을 경우 출력 하는 화면 입니다. */
if($userin[passwd] == $passwput1 && $userin[id] == $id || $id == guest)
{
session_start();
$username = "$id";
session_register( "username");
main_view($username,$connect);
}
/* 전달 되어온 패스워드,ID가 검색한 패스워드,ID 와 같을 경우 또는 전달 되어온 ID가 guest 일 경우
해당 ID에 대해 세션을 만듭니다. */
else
{
echo("
<script>
window.alert('id,passw가 틀립니다. 다시 입력해 주세요')
history.go(-1)
</script>
");
exit;
}
/* 그 밖의 경우 출력 하는 화면 입니다. */
}
if($chanl == chat)
{
echo("
<html>
<body>
<center>
<script>
window.open('chat.php','send','height=100px width=325px')
window.open('chat_view.php','send2','height=200px width=325px')
/* $chanl 이 chat일 때 두개의 채팅 창을 띄웁니다. 간단한 java 스크립트를 이용한 방법 입니다. */
</script>
</center>
</body>
</html>
");
main_view($username,$connect);
}
if($chanl == logout)
{
session_start();
session_destroy("username");
main_view($username,$connect);
}
/* $chanl이 logout일 경우 접속한 ID의 세션을 제거 합니다. */
다음 장에서는 자료실에 대해 설명 하겠습니다.