PHP 프로그래밍

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


Web Programming >> PHP Programming
[목차]
제16장 회원 인증 프로그램(MySQL)

    2. 회원 인증 프로그램 수정하기

 

 1. 메뉴화면 재구성하기

 

파일명 : home.html

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>location.replace('login.html');</SCRIPT>";

        exit;

}

?>

<HTML>

<HEAD>

<TITLE> Lee Lab - Lecture </TITLE>

</HEAD>

 

<frameset rows="1*" cols="200, *" BORDER=1 framespacing=0 frameborder=1>

<frame name="leelab-menu" src="menu.html" scrolling="no" marginwidth="0" marginheight="0" noresize>

<frame name="leelab-detail" src="detail.html" scrolling="auto" marginwidth="0" marginheight="0" noresize>

</frameset>

</HTML>

 

파일명 : menu.html

 

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>location.replace('login.html');</SCRIPT>";

        exit;

}

?>

<HTML>

<HEAD>

<TITLE> 회원만이 볼 수 있는 화면 </TITLE>

</HEAD>

 

<BODY BGCOLOR="#EEEEEE">

<br>

<UL>

        <LI> <A HREF="passwd.html" target="leelab-detail">암호변경</A>

        <LI> <A HREF="change.html" target="leelab-detail">개인정보변경</A><br>

        <LI> <A HREF="admin/member/" target="leelab-detail">회원관리</A><br>

 

        <LI> <a href="logout.html" target="_top">종료</a>

</UL>

</BODY>

</HTML>

 

파일명 : detail.html

 

<?

if(!$user_id || !$user_name) {

        echo "<SCRIPT>location.replace('login.html');</SCRIPT>";

        exit;

}

?>

<HTML>

<HEAD>

<TITLE> 로그인을 환영합니다. </TITLE>

</HEAD>

 

<BODY BGCOLOR="#EEEEEE">

<br>

<center>

<h1>로그인을 환영합니다. </h1>

</center>

</BODY>

</HTML>

 

 

2. 회원관리 프로그램

목록보기(index.html)

<?

if(!$user_id || !$user_name || $user_level != "2") {

        echo "<SCRIPT>location.replace('/bbs/login.html');</SCRIPT>";

        exit;

}

 

########## 데이터베이스 서버에 연결한다. ##########

$dbconn = mysql_connect("localhost","php","php99") or die("DB서버 연결에 실패하였습니다!");

 

########## 작업 데이터베이스로 sample을 선택한다. ##########

$status = mysql_select_db("sample",$dbconn);

if(!$status) {

   $errNO = mysql_errno($dbconn);

   $errMSG = mysql_error($dbconn);

 

   echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

   echo("에러코드 $errNO : $errMSG<br>");

   exit;

}

 

########### 한 페이지당 출력할 게시물의 수

$num_per_page = 10;

 

########### 게시물 출력목록 하단에 링크를 걸 페이지의 개수

$page_per_block = 10;

 

########## 게시판 배경색(Background Color)

$BG_COLOR = "#EEEEEE";

 

########## 게시물 출력목록의 배경색 (Article List Color)

$LIST_TH_COLOR = "#BBBBBB";

$LIST_TD_COLOR = "#EEEEEE";

 

?>

<html>

<head>

   <title>BBS of LeeLAB</title>

   <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">

<STYLE TYPE='text/css'>

<!--

A:link{text-decoration:none;color:}

A:visited{text-decoration:none;color:}

A:hover {background-color:dddddd}

-->

</STYLE>

</head>

 

<script language="javascript">

<!--

function profileWindow(ref) {

   var window_left = (screen.width-700)/2;

   var window_top = (screen.height-200)/2;   

   window.open(ref,"profileWin",'width=700,height=200,status=no,scrollbars=yes,top=' + window_top + ',left=' + window_left + '');

}

//-->

</script>

 

<body bgColor=<?echo("$BG_COLOR")?>>

<table width=600 align=center><tr><td align=center>

<?

 

if(!$page) {

   $page = 1;

}

 

echo("<p align=center><font size=2><b>◎◎◎ [회원관리 프로그램 - 관리자용] ◎◎◎</b></font></p>");

 

 

########## 전체게시물의 총 개수를 각각 구한다. ##########

if(!eregi("[^[:space:]]+",$key)) {

   $query = "SELECT count(num) FROM member";

   if(!strcmp($order,"name")) $query .= " ORDER BY name";

   else $query .= " ORDER BY num DESC";

} else {

   $encoded_key = urlencode($key);

   $query = "SELECT count(num) FROM member WHERE $keyfield LIKE '%$key%'";

   if(!strcmp($order,"name")) $query .= " ORDER BY name";

   else $query .= " ORDER BY num DESC";

}

$result = mysql_query($query);

if(!$result) {

   $errNO = mysql_errno($dbconn);

   $errMSG = mysql_error($dbconn);

 

   echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

   echo("에러코드 $errNO : $errMSG<br>");

   exit;

}

$total_record = mysql_result($result,0,0);

 

########## 현재의 페이지에서 출력할 게시물의 범위를 결정한다. ##########

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

?>

 

<form name="signform" method="post" action="read.html?page=<?echo("$page")?>&keyfield=<?echo("$keyfield")?>&key=<?echo("$encoded_key")?>">

 

<table width="500" border="0" align="center" cellspacing="0" cellpadding="0">

<tr>

   <td width="105">&nbsp;</td>

   <td width="490" align="center">

   <font size="2">   

   

<?

if(!eregi("[^[:space:]]+",$key)) {

   echo("총 등록회원 : <b>$total_record</b> (Total <b>$total_record</b> 명)");   

} else {

   echo("검색된 등록회원 : <b>$total_record</b> (Total <b>$total_record</b> 명)");

}

   echo(" - <b>[BBS 관리자용]</b>");

?>

 

   </font>

   </td>

   <td width="105" align="right"><font size=2>( <font color="red"><? echo("$page") ?></font> / <font color="red"><? echo("$total_page") ?></font> )</font></td>

</tr>

</table>

                

<table border="0" width="500" bgcolor=black align="center" cellspacing="1" cellpadding="0">

<tr>

   <td height=20 align="center" bgColor=<?echo("$LIST_TH_COLOR")?> width=50><font size=2 color="#ffffff">번호</font></td>

   <td align="center" bgColor=<?echo("$LIST_TH_COLOR")?> width=100><font size=2 color="#ffffff">ID</font></td>

   <td align="center" bgColor=<?echo("$LIST_TH_COLOR")?> width=100><font size=2 color="#ffffff"><a href="index.html?<?echo("order=name&keyfield=$keyfield&key=$encoded_key");?>">이름</a></font></td>

   <td align="center" bgColor=<?echo("$LIST_TH_COLOR")?> width=100><font size=2 color="#ffffff">등급</font></td>

   <td align="center" bgColor=<?echo("$LIST_TH_COLOR")?> width=50><font size=2 color="#ffffff">수정</font></td>

   <td align="center" bgColor=<?echo("$LIST_TH_COLOR")?> width=50><font size=2 color="#ffffff">삭제</font></td>

</tr>

 

<?

$time_limit = 60*60*24*$notify_new_article;

 

########## 현재페이지의 범위내에 출력할 결과레코드세트를 얻는다. ##########

if(!eregi("[^[:space:]]+",$key)) {

   $query = "SELECT num,name,email,level,id FROM member ";

   if(!strcmp($order,"name")) $query .= " ORDER BY name";

   else $query .= " ORDER BY num DESC";

} else {

   $query = "SELECT num,name,email,level,id FROM member WHERE $keyfield LIKE '%$key%' ";

   if(!strcmp($order,"name")) $query .= " ORDER BY name";

   else $query .= " ORDER BY num DESC";

}

$result= mysql_query($query);

if(!$result) {

   $errNO = mysql_errno($dbconn);

   $errMSG = mysql_error($dbconn);

 

   echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

   echo("에러코드 $errNO : $errMSG<br>");

   exit;

}

 

########## 게시물의 가상번호(게시물의 개수에 따른 일련번호) ##########

$article_num = $total_record - $num_per_page*($page-1);

 

for($i = $first; $i <= $last; $i++) {

   $my_num = mysql_result($result,$i,0);   

   $my_name = mysql_result($result,$i,1);

   $my_email = mysql_result($result,$i,2);

   $my_level = mysql_result($result,$i,3);

   $my_id = mysql_result($result,$i,4);

 

   echo("<tr>");   

   echo("   <td  height=20 bgColor=$LIST_TD_COLOR align=\"center\"><font size=2>$article_num</font></td>");

   echo("   <td bgColor=$LIST_TD_COLOR align=\"center\"><font size=2>$my_id</font></td>");

   

   ########## 회원 이름 및 이메일주소 ##########

   echo("   <td bgColor=$LIST_TD_COLOR align=\"center\"><font size=2><a href=\"javascript://\" onClick=\"profileWindow('viewmember.html?number=$my_num')\" onMouseOver=\"status='view this record'\" onMouseOut=\"status=''\">$my_name</a></font></td>");

   

   ########## 회원 등급 ##########

   if(!strcmp($my_level,"0")) {

      $level = "무료회원";

   } else if (!strcmp($my_level,"1")) {

      $level = "정상회원";

   } else if (!strcmp($my_level,"2")) {

      $level = "관리자";

   } else {

      $level = "-";

   }

   echo("   <td bgColor=$LIST_TD_COLOR align=\"center\"><font size=2>$level</font></td>");      

   

   echo("<td bgColor=$LIST_TD_COLOR align=\"center\"><font size=2><a href=\"modify.html?mode=form&page=$page&number=$my_num&order=$order&keyfield=$keyfield&key=$encoded_key\" >수정</a></font></td>");

   echo("<td bgColor=$LIST_TD_COLOR align=\"center\"><font size=2><a href=\"delete.html?mode=form&page=$page&number=$my_num&order=$order&keyfield=$keyfield&key=$encoded_key\" >삭제</a></font></td>");

   echo("</tr>");      

 

   $article_num--;

}

 

echo("</table>");

?>

 

<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">

<tr>

   <td align="center">

<?

########## 게시물 목록 하단의 각 페이지로 직접 이동할 수 있는 페이지링크에 대한 설정을 한다. ##########

$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=\"index.html?page=$my_page&order=$order&keyfield=$keyfield&key=$encoded_key\" onMouseOver=\"status='load previous $page_per_block pages';return true;\" onMouseOut=\"status=''\">[이전 ${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=\"index.html?page=$direct_page&order=$order&keyfield=$keyfield&key=$encoded_key\" onMouseOver=\"status='jump to page $direct_page';return true;\" onMouseOut=\"status=''\">[$direct_page]</a></font>");

   }

}

 

########## 다음페이지블록에 대한 페이지 링크 ##########

if($block < $total_block) {

   $my_page = $last_page+1;

   echo("<font size=2><a href=\"index.html?page=$my_page&order=$order&keyfield=$keyfield&key=$encoded_key\" onMouseOver=\"status='load next $page_per_block pages';return true;\" onMouseOut=\"status=''\">[다음 ${page_per_block}개]</a></font>");

}

?>   

   </td>

</tr>

</table>

 

<table width="500" border="0" cellspacing="0" cellpadding="0" align="center">

<tr>

   <td align="left">   

   <a href="index.html"><font size=2>목록</font></a>

   </td>

   <td align="right">   

<!--

   <a href="/bbs/registration.html" onMouseOver="status='post a new article';return true;" onMouseOut="status=''"><img src="<?echo("$icon")?>/post.gif" width=35 height=35 border=0></a>

-->   

<?

########## 이전페이지가 존재할 경우 이전페이지로 가는 링크를 활성화시킨다. ##########

if ($page > 1) {

   $page_num = $page - 1;

   echo("<a href=\"index.html?page=$page_num&order=$order&keyfield=$keyfield&key=$encoded_key\" ><font size=2>이전</a> | ");

} else {

   echo("<font size=2>이전 | ");

}

 

########## 게시물이 다음페이지에도 존재할 경우 다음페이지로 가는 링크를 활성화시킨다. ##########

if ($IsNext > 0) {

   $page_num = $page + 1;   

   echo("<a href=\"index.html?page=$page_num&order=$order&keyfield=$keyfield&key=$encoded_key\"><font size=2>다음</a></td>");

} else {

   echo("<font size=2>다음</td>");

}

?>

 

</tr>

</table>

 

</form>

 

<center>

<form method="post" action="index.html?<?echo("order=$order");?>">

<font size=-1>

<select name="keyfield" size="1">

   <option value="name">이름</option>

   <option value="id">아이디(ID)</option>

   <option value="level">사용자등급</option>

</select>

</font>

<input type="text" size="20" maxlength="30" name="key">

<font size=2><input type="submit" value="검색"></font>

</form>

</center>

</td></tr></table>

 

</body>

</html>

 

 

세부사항 보기(viewmember.html)

<?

if(!$user_id || !$user_name || $user_level != "2") {

        echo "<SCRIPT>location.replace('/bbs/login.html');</SCRIPT>";

        exit;

}

 

########## 데이터베이스 서버에 연결한다. ##########

$dbconn = mysql_connect("localhost","php","php99") or die("DB서버 연결에 실패하였습니다!");

 

########## 작업 데이터베이스로 sample을 선택한다. ##########

$status = mysql_select_db("sample",$dbconn);

if(!$status) {

   $errNO = mysql_errno($dbconn);

   $errMSG = mysql_error($dbconn);

 

   echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

   echo("에러코드 $errNO : $errMSG<br>");

   exit;

}

 

########## 선택한 회원의 회원정보를 조회한다. ##########

$query = "SELECT num,name,level,id FROM member WHERE num = '$number'";

$result = mysql_query($query);

if(!$result) {

   $errNO = mysql_errno($dbconn);

   $errMSG = mysql_error($dbconn);

 

   echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

   echo("에러코드 $errNO : $errMSG<br>");

   exit;

}

$row = mysql_fetch_object($result);

?>

 

<html>

<head>

   <title>BBS of LEELAB Education Center</title>

   <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">

 

   <style type="text/css">

   <!--

   a:link,a:visited,a:active {

      text-decoration : none;

   }

   a:hover {

      text-decoration : underline;

      color : red;

   }

   TABLE, TD, TR, TH {

      font-size : 10pt;

   }

   //-->

   </style>

</head>

 

<body bgcolor="#EEEEEE">

 

<?

$TITLE_BG = "#EEEEEE";                  // 각 타이틀에 대한 배경색

$COLUMN_NAME = "#BBBBBB";               // 입력항목 이름에 대한 배경색

$COLUMN_VALUE = "#EEEEEE";              // 입력양식에 대한 배경색

?>

 

<table width="652" cellspacing="1" cellpadding="0" border="0" align="center">

<tr><td align="center" bgColor="#000000">

 

<table width="650" cellspacing="1" cellpadding="5" border="0" align="center">

 

<!------------------------- 필수 입력사항 --------------------------->

<tr>

   <td width="640" align="center" bgColor="<?echo("$TITLE_BG")?>" colspan=4><b><?echo("$row->name ( $row->id )")?></b>님의 회원정보입니다.</td>

</tr>

 

<!------------------------- 이름과 아이디(ID) --------------------------->

<tr>

   <td width="140" bgColor="<?echo("$COLUMN_NAME")?>" align="center">한글이름</td>

   <td width="180" bgColor="<?echo("$COLUMN_VALUE")?>"><?echo("$row->name")?></td>

 

   <td width="140" bgColor="<?echo("$COLUMN_NAME")?>" align="center">ID</td>

   <td width="180" bgColor="<?echo("$COLUMN_VALUE")?>"><?echo("$row->id")?></td>

</tr>

<!------------------------- 회원 등급 --------------------------->

<tr>

   <td bgColor="<?echo("$COLUMN_NAME")?>" align="center">사용자등급</td>

   <td bgColor="<?echo("$COLUMN_VALUE")?>" colspan="3">

<?

   if(!strcmp($row->level,"0")) {

      $level = "무료회원";

   } else if (!strcmp($row->level,"1")) {

      $level = "정상회원";

   } else if (!strcmp($row->level,"2")) {

      $level = "관리자";

   } else {

      $level = "-";

   }

   echo("$level");

?>   

   </td>

</tr>

</table>

 

</td></tr>

</table>

 

</body>

</html>

 

 

수정하기(modify.html)

<?

if(!$user_id || !$user_name || $user_level != "2") {

        echo "<SCRIPT>location.replace('/bbs/login.html');</SCRIPT>";

        exit;

}

 

########## 데이터베이스 서버에 연결한다. ##########

$dbconn = mysql_connect("localhost","php","php99") or die("DB서버 연결에 실패하였습니다!");

 

########## 작업 데이터베이스로 sample을 선택한다. ##########

$status = mysql_select_db("sample",$dbconn);

if(!$status) {

   $errNO = mysql_errno($dbconn);

   $errMSG = mysql_error($dbconn);

 

   echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

   echo("에러코드 $errNO : $errMSG<br>");

   exit;

}

 

########## 전달된 변수 $mode의 값이 "form"일 경우 수정양식을 출력한다. ##########

if(!strcmp($mode,"form")) {

 

   ########## 현재 로그인한 사용자의 데이터를 회원테이블에서 가져온다. ##########

   $query = "SELECT num,name,level,id  FROM member WHERE num = '$number'";

   $result = mysql_query($query);

        if(!$result) {

           $errNO = mysql_errno($dbconn);

           $errMSG = mysql_error($dbconn);

 

           echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

           echo("에러코드 $errNO : $errMSG<br>");

           exit;

        }

   $row = mysql_fetch_object($result);

   

?>

<html>

<head>

   <title>BBS of LEELAB Education Center</title>

   <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">

 

   <style type="text/css">

   <!--

   a:link,a:visited,a:active {

      text-decoration : none;

   }

   a:hover {

      text-decoration : underline;

      color : red;

   }

   TABLE, TD, TR, TH {

      font-size : 10pt;

   }

   //-->

   </style>

 

   <script language="javascript">

   <!--

   function checkInput (form) {

     

      if(form.set_pw[0].checked) {

         if(!IsPW(form.passwd.name)) {

            alert("비밀번호는 4자 이상의 영문소문자나 숫자 또는 조합된 문자열이어야 합니다!");

            form.passwd.focus();

            form.passwd.select();

            return;

         }    

         if (form.passwd.value != form.repasswd.value) {

            alert("입력하신 비밀번호가 일치하지 않습니다.\n다시 확인하시고 입력하여 주십시오.");

            form.repasswd.focus();

            form.repasswd.select();

            return;

         }       

      }

      

      form.submit();

   }

   

   function IsNumber(formname) {

      var form = eval("document.signform." + formname);

 

      for(var i = 0; i < form.value.length; i++) {

         var chr = form.value.substr(i,1);

         if(chr < '0' || chr > '9') {            

            return false;

         }

      }

      return true;   

   }

 

   function IsPW(formname) {

      var form = eval("document.signform." + formname);

      

      if(form.value.length < 4 ) {

         return false;

      }

      for(var i = 0; i < form.value.length; i++) {

         var chr = form.value.substr(i,1);         

         if((chr < '0' || chr > '9') && (chr < 'a' || chr > 'z') && (chr < 'A' || chr > 'Z')) {

            return false;

         }

      }

      return true;   

   }

   

   //-->

   </script>

</head>

 

<body bgcolor="#FFFFFF">

 

<?

$TITLE_BG = "#EEEEEE";                  // 각 타이틀에 대한 배경색

$COLUMN_NAME = "#BBBBBB";               // 입력항목 이름에 대한 배경색

$COLUMN_VALUE = "#EEEEEE";              // 입력양식에 대한 배경색

 

$php_self = basename($PHP_SELF);

?>

 

<form name="signform" method="POST" action="<?echo("$php_self")?>?mode=process&page=<?echo("$page")?>&number=<?echo("$number")?>&keyfield=<?echo("$keyfield")?>&key=<?echo("$key")?>">

 

<table width="652" cellspacing="1" cellpadding="0" border="0" align="center">

<tr><td align="center" bgColor="#000000">

 

<table width="650" cellspacing="1" cellpadding="5" border="0" align="center">

 

<!------------------------- 필수 입력사항 --------------------------->

<tr>

   <td width="640" align="center" bgColor="<?echo("$TITLE_BG")?>" colspan=4><?echo("<b>$row->name</b>")?>회원의 정보를 수정합니다.</td>

</tr>

 

<!------------------------- 이름과 아이디(ID) --------------------------->

<tr>

   <td width="140" bgColor="<?echo("$COLUMN_NAME")?>" align="center">한글이름</td>

   <td width="180" bgColor="<?echo("$COLUMN_VALUE")?>"><input type="text" name="name" size="10" maxlength="12" value="<?echo("$row->name")?>"></td>

 

   <td width="140" bgColor="<?echo("$COLUMN_NAME")?>" align="center">id</td>

   <td width="180" bgColor="<?echo("$COLUMN_VALUE")?>">

      <input type="text" name="id" size="10" maxlength="5" value='<?echo("$row->id")?>'>

   </td>

</tr>

 

<!------------------------- 회원 등급 --------------------------->

<tr>

   <td bgColor="<?echo("$COLUMN_NAME")?>" align="center">회원등급</td>

   <td width="505" bgColor="<?echo("$COLUMN_VALUE")?>" colspan="3">

<?   

   if(!strcmp($row->level,"0")) {

      echo("<input type=\"radio\" name=\"level\" value=\"0\" CHECKED>무료회원");

   } else {

      echo("<input type=\"radio\" name=\"level\" value=\"0\">무료회원");

   }   

   

   if(!strcmp($row->level,"1")) {

      echo("<input type=\"radio\" name=\"level\" value=\"1\" CHECKED>정상회원");

   } else {

      echo("<input type=\"radio\" name=\"level\" value=\"1\">정상회원");

   }

        

   if(!strcmp($row->level,"2")) {

      echo("<input type=\"radio\" name=\"level\" value=\"2\" CHECKED>관리자");

   } else {

      echo("<input type=\"radio\" name=\"level\" value=\"2\">관리자");

   }    

?>   

   </td>

</tr>

 

<!------------------------- 회원비밀번호 변경 --------------------------->

<tr>

   <td align="center" bgColor="<?echo("$TITLE_BG")?>" colspan=4><?echo("<b>$row->name</b>")?>회원의 비밀번호를 변경하시겠습니까?

   <input type="radio" name="set_pw" value="1">예

   <input type="radio" name="set_pw" value="0" CHECKED>아니요

   </td>

</tr>

 

<!------------------------- 새 비밀번호 --------------------------->

<tr>

   <td width="140" bgColor="<?echo("$COLUMN_NAME")?>" align="center">새 비밀번호</td>

   <td width="180" bgColor="<?echo("$COLUMN_VALUE")?>">

      <input type="password" name="passwd" size="10" maxlength="30"> <font color="red">(최소 4자)</font>

   </td>

 

<!------------------------- 새 비밀번호 확인 --------------------------->

   <td width="140" align="center" bgColor="<?echo("$COLUMN_NAME")?>" align="center">새 비밀번호 확인</td>

   <td width="180" align="center" bgColor="<?echo("$COLUMN_VALUE")?>"><input type="password" name="repasswd" size="10" maxlength="30"></td>

</tr>

 

<!------------------------- 등록버튼  --------------------------->

<tr>

   <td align="center" colspan="4" bgColor="#FFFFFF">

   <font size=2>

      <input type="button" value="회원정보 수정" onClick="checkInput(this.form)">

      <input type="reset" value="다시 입력">

       <input type="hidden" name="order" value='<?echo("$order")?>'>      

 

   </font>

   </td>

</tr>

 

</table>

 

</td></tr>

</table><p>

 

</form>

 

<center>

<a href="./?page=<?echo("$page")?>&keyfield=<?echo("$keyfield")?>&key=<?echo("$key")?>" ><font size=2>목록</a>

</font>

</center>

</body>

</html>

<?

########## 전달된 변수 $mode의 값이 "process"일 경우 입력양식의 값으로 회원정보를 갱신한다. ##########

} else if(!strcmp($mode,"process")) {

 

   

   ########## 사용자가 입력양식에 입력한대로 회원정보를 갱신한다.##########

   if($set_pw) {

      $query  = "UPDATE member SET id='$id',name='$name',level = '$level', passwd = '$passwd' WHERE num = '$number'";  

   } else {

      $query  = "UPDATE member SET id='$id',name='$name',level = '$level' WHERE num = '$number'";  

   }

   $result = mysql_query($query);

        if(!$result) {

           $errNO = mysql_errno($dbconn);

           $errMSG = mysql_error($dbconn);

 

           echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

           echo("에러코드 $errNO : $errMSG<br>");

           exit;

        }

   

   ########## 회원목록 출력화면으로 이동한다. ##########

   $encoded_key = urlencode($key);

   echo("<meta http-equiv='Refresh' content='0; URL=index.html?page=$page&order=$order&keyfield=$keyfield&key=$encoded_key'>");      

 

########## 전달된 변수 $mode의 값이 "mode"나 "process"가 아닐 경우 스크립트의 실행을 종료한다. ##########   

} else {

   echo("UPDATE_MEMBER_INVALID_MODE");

   exit;

}

?>

 

 

삭제하기(delete.html)

<?

if(!$user_id || !$user_name || $user_level != "2") {

        echo "<SCRIPT>location.replace('/bbs/login.html');</SCRIPT>";

        exit;

}

 

########## 데이터베이스 서버에 연결한다. ##########

$dbconn = mysql_connect("localhost","php","php99") or die("DB서버 연결에 실패하였습니다!");

 

########## 작업 데이터베이스로 sample을 선택한다. ##########

$status = mysql_select_db("sample",$dbconn);

if(!$status) {

   $errNO = mysql_errno($dbconn);

   $errMSG = mysql_error($dbconn);

 

   echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

   echo("에러코드 $errNO : $errMSG<br>");

   exit;

}

 

########## 전달된 변수 $mode의 값이 "form"일 경우 삭제확인화면을 출력한다. ##########

if(!strcmp($mode,"form")) {

 

   ########## 현재 로그인한 사용자의 데이터를 회원테이블에서 가져온다. ##########

   $query = "SELECT num,name,level,id FROM member WHERE num = '$number'";

   $result = mysql_query($query);

        if(!$result) {

           $errNO = mysql_errno($dbconn);

           $errMSG = mysql_error($dbconn);

 

           echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

           echo("에러코드 $errNO : $errMSG<br>");

           exit;

        }

   $row = mysql_fetch_object($result);

?>

<html>

<head>

   <title>BBS of LEELAB</title>

   <meta http-equiv="Content-Type" content="text/html; charset=euc-kr">

 

   <style type="text/css">

   <!--

   a:link,a:visited,a:active {

      text-decoration : none;

   }

   a:hover {

      text-decoration : underline;

      color : red;

   }

   TABLE, TD, TR, TH {

      font-size : 10pt;

   }

   //-->

   </style>

</head>

 

<body bgcolor="#FFFFFF">

 

<?

$TITLE_BG = "#EEEEEE";                  // 각 타이틀에 대한 배경색

$COLUMN_NAME = "#BBBBBB";               // 입력항목 이름에 대한 배경색

$COLUMN_VALUE = "#EEEEEE";              // 입력양식에 대한 배경색

 

$php_self = basename($PHP_SELF);

?>

 

<form name="signform" method="POST" action="<?echo("$php_self")?>?mode=process&page=<?echo("$page")?>&number=<?echo("$number")?>&keyfield=<?echo("$keyfield")?>&key=<?echo("$key")?>">

 

<table width="652" cellspacing="1" cellpadding="0" border="0" align="center">

<tr><td align="center" bgColor="#000000">

 

<table width="650" cellspacing="1" cellpadding="5" border="0" align="center">

 

<!------------------------- 필수 입력사항 --------------------------->

<tr>

   <td width="640" align="center" bgColor="<?echo("$TITLE_BG")?>" colspan=4><?echo("<b>$row->name($row->id)</b>")?>회원을 데이터베이스에서 <font color=red>삭제합니다</font>.</td>

</tr>

 

<!------------------------- 이름과 아이디(ID) --------------------------->

<tr>

   <td width="140" bgColor="<?echo("$COLUMN_NAME")?>" align="center">한글이름</td>

   <td width="180" bgColor="<?echo("$COLUMN_VALUE")?>"><?echo("$row->name")?></td>

 

   <td width="140" bgColor="<?echo("$COLUMN_NAME")?>" align="center">ID</td>

   <td width="180" bgColor="<?echo("$COLUMN_VALUE")?>"><?echo("$row->id")?></td>

</tr>

 

<tr>

   <td align="center" colspan="4" bgColor="#FFFFFF">

   <font size=2>

      <input type="submit" value='<?echo("$row->name")?>회원을 삭제합니다'>      

      <input type="hidden" name="order" value='<?echo("$order")?>'>      

   </font>

   </td>

</tr>

 

</table>

 

</td></tr>

</table><p>

 

</form>

 

<center>

<a href="./?page=<?echo("$page")?>&keyfield=<?echo("$keyfield")?>&key=<?echo("$key")?>" ><font size=2>목록</a>

</font>

</center>

 

</body>

</html>

<?

########## 전달된 변수 $mode의 값이 "process"일 경우 입력양식의 값으로 회원정보를 갱신한다. ##########

} else if(!strcmp($mode,"process")) {

 

   ########## 회원데이터를 데이터베이스에서 삭제한다. ##########      

   $result = mysql_query("DELETE FROM member WHERE num = '$number'");

        if(!$result) {

           $errNO = mysql_errno($dbconn);

           $errMSG = mysql_error($dbconn);

 

           echo("서버의 sample 데이터베이스연결에 실패하였습니다!<br>");

           echo("에러코드 $errNO : $errMSG<br>");

           exit;

        }

   

   ########## 회원목록 출력화면으로 이동한다. ##########

   $encoded_key = urlencode($key);

   echo("<meta http-equiv='Refresh' content='0; URL=index.html?page=$page&order=$order&keyfield=$keyfield&key=$encoded_key'>");      

 

########## 전달된 변수 $mode의 값이 "mode"나 "process"가 아닐 경우 스크립트의 실행을 종료한다. ##########   

} else {

   echo("UPDATE_MEMBER_INVALID_MODE");

   exit;

}

?>

 

 

 

3. [문제] 회원관리 프로그램 수정

테이블에는 email필드가 있습니다. 그러나 위의 회원관리 프로그램에는 email을 수정하는 부분이 없습니다. modify.html를 수정하여 email도 수정할 수 있게 하기 바랍니다.

또한 그외의 회원 테이블에 빠진 항목이 있다면, 등록폼에 추가하고, 수정폼에서도 처리하기 바랍니다.

예) 주소(address), 주민번호, 전화번호 등

 

[목차]

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

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

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