Web Programming >> PHP Programming
|
[목차] |
제24장 쇼핑몰 만들기 2
2. 관리자용 회원관리 프로그램
회원관리에 필요한 프로그램들을 정리하였다. / -- shop/ -- admin/ --- member/ --(회원관리 추가) | | | +-- list.html | +-- viewbody.html | +-- modifyform.html | +-- modify.html | +-- deleteform.html | +-- delete.html +- menu.html (관리자 메뉴 수정)
1. 테이블 만들기 CREATE TABLE member (num int(11) NOT NULL auto_increment, id varchar(15), passwd varchar(30), name varchar(20), email varchar(50), address varchar(100), tel varchar(15), logindate int(10) unsigned, PRIMARY KEY (num) ) ; 위의 테이블을 myadmin이나, mysql 콘솔에서 만들면 된다.
2. 목록보기 파일명 : list.html <? include "../../user_function.html"; include "../../dbconn.html";
include("../admin.html");
if(!$user_id || strcmp($row->logindate,$user_logindate)) { echo ("<meta http-equiv='Refresh' content='0; URL=../'>"); exit; }
########### 한 페이지당 출력할 게시물의 수 $num_per_page = 10;
########### 게시물 출력목록 하단에 링크를 걸 페이지의 개수 $page_per_block = 10;
########### 페이지 초기화 if(!$page) { $page = 1; }
?> <html> <head> <style type="text/css"> <!-- a:link,a:visited,a:active { text-decoration : none; font-size : 10pt; } a:hover { text-decoration : underline; color : red; font-size : 10pt; } BODY, TR, TD, TH { font-size : 10pt; } //--> </style> </head> <body>
<?
########## SELECT 쿼리문으로 userdb테이블에 저장되어 있는 모든 사용자 데이터를 불러온다. ########## $query = "SELECT name,id,address,tel FROM member ORDER BY id"; $result = mysql_query($query,$dbconn); if(!$result) { $errNO = mysql_errno($dbconn); $errMSG = mysql_error($dbconn);
error("에러코드 $errNO : $errMSG<br>"); exit; }
$total_record = mysql_num_rows($result);
########## 현재의 페이지에서 출력할 게시물의 범위를 결정한다. ########## if(!$total_record) { $first = 1; $last = 0; } else { $first = $num_per_page*($page-1); $last = $num_per_page*$page;
$IsNext = $total_record - $last; if($IsNext > 0) { $last -= 1; } else { $last = $total_record - 1; } }
########## 전체 페이지수를 계산한다. ########## $total_page = ceil($total_record/$num_per_page); ?> <table width="600" border="0" align="center" cellspacing="0" cellpadding="0"> <tr> <td align=center height=30><b><font size=4>회 원 관 리</font></b></td> </tr> </table> <table width=600 border=0 cellpadding=3 align=center> <tr> <? if(!$total_record) { echo("<td colspan=8 align=center>현재 등록되어 있는 사용자가 없습니다.</td>"); } else { ?> <td colspan=8 align=center>전체 회원수 <b><?echo("$total_record")?></b>명 <font size=2>( <font color="red"><? echo("$page") ?></font> / <font color="red"><? echo("$total_page") ?></font> )</font></td> <? } ?> </tr> </table> <table width=600 border=0 cellpadding=0 cellspacing="1" align="center"> <tr> <td bgColor="#000000"> <table width=600 border=0 cellpadding=0 cellspacing="1"align=center>
<tr> <td bgColor="#BBBBBB" width=50 align="center" height="25"><font size=2 color="#000000">번호</td> <th bgColor="#BBBBBB" width=100 align=center><font size=2 color="#000000">이름</td> <th bgColor="#BBBBBB" width=100 align=center><font size=2 color="#000000">아이디</td> <th bgColor="#BBBBBB" width=250 align=center><font size=2 color="#000000">주소</td> <th bgColor="#BBBBBB" width=100 align=center><font size=2 color="#000000">전화번호</td> </tr>
<? $time_limit = 60*60*24*$notify_new_article;
########## 게시물의 가상번호(게시물의 개수에 따른 일련번호) ########## $article_num = $total_record - $num_per_page*($page-1);
########## 테이블내 모든 레코드의 각 데이터 값을 각각의 변수에 저장하여 출력한다. ########## for($i = $first; $i <= $last; $i++) { $my_name = mysql_result($result,$i,0); $my_id = mysql_result($result,$i,1); $my_address = mysql_result($result,$i,2); $my_tel = mysql_result($result,$i,3);
echo(" <tr> <td bgColor=#FFFFFF align=center height=20>$article_num</td> <td bgColor=#FFFFFF align=center><a href=\"viewuser.html?id=$my_id\">$my_name</a></td> <td bgColor=#FFFFFF align=center>$my_id</td> <td bgColor=#FFFFFF align=center>$my_address</td> <td bgColor=#FFFFFF align=center>$my_tel</td> </tr> ");
$article_num--; } ?>
</table> </td> </tr> </table>
<table width="600" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td colspan="6" align="center" height=30> <? ########## 게시물 목록 하단의 각 페이지로 직접 이동할 수 있는 페이지링크에 대한 설정을 한다. $total_block = ceil($total_page/$page_per_block); $block = ceil($page/$page_per_block);
$first_page = ($block-1)*$page_per_block; $last_page = $block*$page_per_block;
if($total_block <= $block) { $last_page = $total_page; }
########## 이전페이지블록에 대한 페이지 링크 ########## if($block > 1) { $my_page = $first_page; echo("<font size=2><a href=\"$php_self?page=$my_page\" >[이전 ${page_per_block}개]</a></font>"); }
########## 현재의 페이지 블럭범위내에서 각 페이지로 바로 이동할 수 있는 하이퍼링크를 출력한다. for($direct_page = $first_page+1; $direct_page <= $last_page; $direct_page++) { if($page == $direct_page) { echo("<font size=2><b>[$direct_page]</b></font>"); } else { echo("<font size=2><a href=\"list.html?page=$direct_page\">[$direct_page]</a></font>"); } }
########## 다음페이지블록에 대한 페이지 링크 ########## if($block < $total_block) { $my_page = $last_page+1; echo("<font size=2><a href=\"list.html?page=$my_page\">[다음 ${page_per_block}개]</a></font>"); } ?> </td> </tr> </table>
<table width="600" border="0" cellspacing="0" cellpadding="0" align="center"> <tr> <td align="left"> <a href="list.html">목록</a> </td> <td align="right"> <? ########## 이전페이지가 존재할 경우 이전페이지로 가는 링크를 활성화시킨다. if ($page > 1) { $page_num = $page - 1; echo("<a href=\"list.html?page=$page_num\">이전</a> | "); } else { echo("이전 | "); }
########## 게시물이 다음페이지에도 존재할 경우 다음페이지로 가는 링크를 활성화시킨다. if ($IsNext > 0) { $page_num = $page + 1; echo("<a href=\"list.html?page=$page_num\">다음</a></td>"); } else { echo("다음</td>"); } ?>
</tr> </table>
</body> </html>
<? ########## 데이터베이스 연결을 해제한다. ########## mysql_close($dbconn); ?>
3. 세부 내역보기 파일명 : viewuser.html <? include "../../user_function.html"; include "../../dbconn.html";
include("../admin.html");
if(!$user_id || strcmp($row->logindate,$user_logindate)) { echo ("<meta http-equiv='Refresh' content='0; URL=../'>"); exit; } ?> <html> <head> <style type="text/css"> <!-- a:link,a:visited,a:active { text-decoration : none; font-size : 10pt; } a:hover { text-decoration : underline; color : red; font-size : 10pt; } BODY, TR, TD, TH { font-size : 10pt; } //--> </style> </head> <body>
<?
########## 수정하고자 하는 사용자의 정보를 뽑아온다. ########## $query = "SELECT name,id,email,address,tel FROM member WHERE id = '$id'"; $result = mysql_query($query,$dbconn); if(!$result) { $errNO = mysql_errno($dbconn); $errMSG = mysql_error($dbconn);
echo("에러코드 $errNO : $errMSG<br>"); exit; }
$my_name = mysql_result($result,0,0); $my_id = mysql_result($result,0,1); $my_email = mysql_result($result,0,2); $my_address = mysql_result($result,0,3); $my_tel = mysql_result($result,0,4); ?>
<table width="500" border="0" align="center" cellspacing="0" cellpadding="0"> <tr> <td align=center height=30><b><font size=4>회 원 관 리</font></b></td> </tr> </table> <table width="500" border="0" cellspacing="1" cellpadding="0" align="center"> <tr> <td bgColor="#000000">
<table width="500" border="0" cellspacing="1" cellpadding="5" align="center"> <tr> <td width="120" align="center" bgColor="#BBBBBB"><font size=2 >이 름</font></td> <td width="380" bgColor="#EEEEEE"><?echo("$my_name")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2 >아이디</font></td> <td bgColor="#EEEEEE"><?echo("$my_id")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2 >이메일주소</font></td> <td bgColor="#EEEEEE"><?echo("$my_email")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2 >주소</font></td> <td bgColor="#EEEEEE"> <?echo("$my_address")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2 >전화번호</font></td> <td bgColor="#EEEEEE"><?echo("$my_tel")?></td> </tr> <tr> <td align="center" colspan="2" bgColor="white"> <font size=2> <a href="list.html">목록</a> | <a href="modifyform.html?id=<?echo($id);?>">수정</a> | <a href="deleteform.html?id=<?echo($id);?>">삭제</a> </font> </td> </tr>
</table>
</td> </tr> </table>
</body> </html>
4. 수정하기 파일명 : modifyform.html <? include "../../user_function.html"; include "../../dbconn.html";
include("../admin.html");
if(!$user_id || strcmp($row->logindate,$user_logindate)) { echo ("<meta http-equiv='Refresh' content='0; URL=../'>"); exit; } ?> <html> <head> <style type="text/css"> <!-- a:link,a:visited,a:active { text-decoration : none; font-size : 10pt; } a:hover { text-decoration : underline; color : red; font-size : 10pt; } BODY, TR, TD, TH { font-size : 10pt; } //--> </style> </head> <body>
<?
########## 수정하고자 하는 사용자의 정보를 뽑아온다. ########## $query = "SELECT name,id,email,address,tel FROM member WHERE id = '$id'"; $result = mysql_query($query,$dbconn); if(!$result) { $errNO = mysql_errno($dbconn); $errMSG = mysql_error($dbconn);
echo("에러코드 $errNO : $errMSG<br>"); exit; }
$my_name = mysql_result($result,0,0); $my_id = mysql_result($result,0,1); $my_email = mysql_result($result,0,2); $my_address = mysql_result($result,0,3); $my_tel = mysql_result($result,0,4); ?> <table width="500" border="0" align="center" cellspacing="0" cellpadding="0"> <tr> <td align=center height=30><b><font size=4>회 원 관 리</font></b></td> </tr> </table>
<form name="signform" method="post" action="modify.html?id=<?echo("$id")?>">
<table width="500" border="0" cellspacing="1" cellpadding="0" align="center"> <tr> <td bgColor="#000000">
<table width="500" border="0" cellspacing="1" cellpadding="5" align="center"> <tr> <td width="120" align="center" bgColor="#BBBBBB"><font size=2>이 름</font></td> <td width="380" bgColor="#EEEEEE"><input type="text" name="name" size="15" value="<?echo("$my_name")?>"></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2>아이디</font></td> <td bgColor="#EEEEEE"><?echo("$my_id")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2>이메일주소</font></td> <td bgColor="#EEEEEE"><input type="text" name="email" size="25" value="<?echo("$my_email")?>"></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2>주소</font></td> <td bgColor="#EEEEEE"> <input type="text" name="address" size="25" value="<?echo("$my_address")?>"></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2>전화번호</font></td> <td bgColor="#EEEEEE"><input type="text" name="tel" size="10" value="<?echo("$my_tel")?>"></td> </tr> <tr> <td align="center" colspan="2" bgColor="#BBBBBB"> <font size=2> <input type="submit" value="사용자정보 수정"> <input type="reset" value="취 소"> </font> </td> </tr> </table>
</td> </tr> </table>
</form>
</body> </html>
파일명 : modify.html <? include "../../user_function.html"; include "../../dbconn.html";
include("../admin.html");
if(!$user_id || strcmp($row->logindate,$user_logindate)) { echo ("<meta http-equiv='Refresh' content='0; URL=../'>"); exit; } ?> <html> <head> <style type="text/css"> <!-- a:link,a:visited,a:active { text-decoration : none; font-size : 10pt; } a:hover { text-decoration : underline; color : red; font-size : 10pt; } BODY, TR, TD, TH { font-size : 10pt; } //--> </style> </head> <body>
<?
########## 수정하고자하는 id를 갖는 레코드의 각 데이터를 사용자가 입력한 값으로 수정한다. ########## $query = "UPDATE member SET name = '$name', email = '$email', address = '$address', tel = '$tel' WHERE id = '$id'"; $result = mysql_query($query,$dbconn); if (!$result) { $errNO = mysql_errno($dbconn); $errMSG = mysql_error($dbconn);
echo("에러코드 $errNO : $errMSG<br>"); exit; } else { ########## 성공적으로 수정이 되면 리스트 출력화면으로 이동한다. ########## echo("<meta http-equiv='Refresh' content='0; URL=list.html'>"); } ?>
5. 삭제하기 파일명 : deleteform.html <? include "../../user_function.html"; include "../../dbconn.html";
include("../admin.html");
if(!$user_id || strcmp($row->logindate,$user_logindate)) { echo ("<meta http-equiv='Refresh' content='0; URL=../'>"); exit; } ?> <html> <head> <style type="text/css"> <!-- a:link,a:visited,a:active { text-decoration : none; font-size : 10pt; } a:hover { text-decoration : underline; color : red; font-size : 10pt; } BODY, TR, TD, TH { font-size : 10pt; } //--> </style> </head> <body>
<?
########## 삭제하고자 하는 사용자의 데이터를 뽑아온다. ########## $query = "SELECT name,id,email,address,tel FROM member WHERE id = '$id'"; $result = mysql_query($query,$dbconn); if(!$result) { $errNO = mysql_errno($dbconn); $errMSG = mysql_error($dbconn);
echo("에러코드 $errNO : $errMSG<br>"); exit; }
$my_name = mysql_result($result,0,0); $my_id = mysql_result($result,0,1); $my_email = mysql_result($result,0,2); $my_address = mysql_result($result,0,3); $my_tel = mysql_result($result,0,4); ?> <table width="500" border="0" align="center" cellspacing="0" cellpadding="0"> <tr> <td align=center height=30><b><font size=4>회 원 관 리</font></b></td> </tr> </table> <form name="signform" method="post" action="delete.html?id=<?echo("$id")?>">
<table width="402" border="0" cellspacing="1" cellpadding="0" align="center"> <tr> <td bgColor="#000000">
<table width="400" border="0" cellspacing="1" cellpadding="5" align="center"> <tr> <td width="120" align="center" bgColor="#BBBBBB"><font size=2 >이 름</font></td> <td width="380" bgColor="#EEEEEE"><?echo("$my_name")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2 >아이디</font></td> <td bgColor="#EEEEEE"><?echo("$my_id")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2 >이메일주소</font></td> <td bgColor="#EEEEEE"><?echo("$my_email")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2 >주소</font></td> <td bgColor="#EEEEEE"> <?echo("$my_address")?></td> </tr> <tr> <td align="center" bgColor="#BBBBBB"><font size=2 >전화번호</font></td> <td bgColor="#EEEEEE"><?echo("$my_tel")?></td> </tr> <tr> <td align="center" colspan="2" bgColor="#FFFFFF"> <font size=2> <input type="submit" value="사용자정보 삭제"> <input type="reset" value="취 소"> </font> </td> </tr> </table>
</td> </tr> </table>
</form>
</body> </html>
파일명 : delete.html <? include "../../user_function.html"; include "../../dbconn.html";
include("../admin.html");
if(!$user_id || strcmp($row->logindate,$user_logindate)) { echo ("<meta http-equiv='Refresh' content='0; URL=../'>"); exit; } ?> <html> <head> <style type="text/css"> <!-- a:link,a:visited,a:active { text-decoration : none; font-size : 10pt; } a:hover { text-decoration : underline; color : red; font-size : 10pt; } BODY, TR, TD, TH { font-size : 10pt; } //--> </style> </head> <body>
<?
########## 삭제하고자 하는 id를 갖는 레코드를 userdb테이블에서 삭제한다. ########## $query = "DELETE FROM member WHERE id = '$id'"; $result = mysql_query($query,$dbconn); if (!$result) { $errNO = mysql_errno($dbconn); $errMSG = mysql_error($dbconn);
echo("에러코드 $errNO : $errMSG<br>"); exit; }
echo("<meta http-equiv='Refresh' content='0; URL=list.html'>"); ?>
6. 관리자 매뉴에 추가하기 파일명 : menu.html <? include "../user_function.html"; include "../dbconn.html";
include("admin.html");
if(!$user_id || strcmp($row->logindate,$user_logindate)) { echo ("<meta http-equiv='Refresh' content='0; URL=../'>"); exit; } ?> <HTML> <HEAD> <TITLE> 관리자 - 메뉴 </TITLE> </HEAD>
<BODY BGCOLOR="#EEEEEE"> <br> <UL> <LI> <A HREF="product/list.html" target="bookshop-detail">제품관리</A> <LI> <A HREF="order/" target="bookshop-detail">주문관리</A><br> </UL> <UL> <LI> <A HREF="member/list.html" target="bookshop-detail">회원관리</A><br> </UL> <ul> <li><a href="logout.html" target="_top">종료</a>
</li> </ul> </BODY> </HTML>
|
[목차] |