PHP 프로그래밍

본문 바로가기
사이트 내 전체검색


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>명

   &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;

   <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>

 

 

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.