반응형
지난시간에는 게시판을 생성하고 수정관리하는 페이지를 만들었습니다.
오늘은 회원들을 관리하는 페이지를 만들어 보도록 하겠습니다.
들어간 소스들은 지난시간의 게시판 관리 부분과 크게 차이가 없으니 설명은 생량하도록 하겠습니다.
[실행화면]
다음시간에는 회원쪽의 공통인클루드와 회원가입부분을 배워보도록 하겠습니다.
오늘은 회원들을 관리하는 페이지를 만들어 보도록 하겠습니다.
들어간 소스들은 지난시간의 게시판 관리 부분과 크게 차이가 없으니 설명은 생량하도록 하겠습니다.
<?
// 1. 공통 인클루드 파일
include "./admin_head.php";
// 2. 페이지 변수 설정
if($_GET[page] && $_GET[page] > 0){
// 현재 페이지 값이 존재하고 0 보다 크면 그대로 사용
$page = $_GET[page];
}else{
// 그 외의 경우는 현재 페이지를 1로 설정
$page = 1;
}
// 한 페이지에 보일 글 수
$page_row = 10;
// 한줄에 보여질 페이지 수
$page_scale = 10;
// 페이징을 출력할 변수 초기화
$paging_str = "";
// 3. 전체 회원 갯수 알아내기
$sql = "select count(*) as cnt from bd__member where 1";
$total_count = sql_total($sql);
// 4. 페이지 출력 내용 만들기
$paging_str = paging($page, $page_row, $page_scale, $total_count);
// 5. 시작 열을 구함
$from_record = ($page - 1) * $page_row;
// 6. 목록 구하기
$query = "select * from bd__member where 1 order by m_idx desc limit ".$from_record.", ".$page_row;
$data = sql_list($query);
?>
<br/>
<table style="width:1000px;height:50px;border:5px #CCCCCC solid;">
<tr>
<td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">회원 목록</td>
</tr>
</table>
<br/>
<table cellspacing="1" style="width:1000px;height:50px;border:0px;background-color:#999999;">
<tr>
<td align="center" valign="middle" width="5%" style="height:30px;background-color:#CCCCCC;">번호</td>
<td align="center" valign="middle" width="20%" style="height:30px;background-color:#CCCCCC;">아이디</td>
<td align="center" valign="middle" width="45%" style="height:30px;background-color:#CCCCCC;">이름</td>
<td align="center" valign="middle" width="30%" style="height:30px;background-color:#CCCCCC;">레벨</td>
</tr>
<?
if($total_count > 0){
for($i=0;$i<count($data);$i++){
?>
<tr>
<td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><?=($total_count - (($page - 1) * $page_row) - $i )?></td>
<td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><a href="./admin_member_modify.php?m_idx=<?=$data[$i][m_idx]?>&page=<?=$page?>"><?=$data[$i][m_id]?></a></td>
<td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><a href="./admin_member_modify.php?m_idx=<?=$data[$i][m_idx]?>&page=<?=$page?>"><?=$data[$i][m_name]?></a></td>
<td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;">
<?
if($data[$i][m_level] == 1){
echo "일반회원";
}else if($data[$i][m_level] == 9){
echo "어드민";
}else{
echo $data[$i][m_level];
}?>
</td>
</tr>
<?
}
}else{?>
<tr>
<td align="center" valign="middle" colspan="4" style="height:50px;background-color:#FFFFFF;">회원이 하나도 없습니다.</td>
</tr>
<?}?>
</table>
[admin_member_list.php 소스]// 1. 공통 인클루드 파일
include "./admin_head.php";
// 2. 페이지 변수 설정
if($_GET[page] && $_GET[page] > 0){
// 현재 페이지 값이 존재하고 0 보다 크면 그대로 사용
$page = $_GET[page];
}else{
// 그 외의 경우는 현재 페이지를 1로 설정
$page = 1;
}
// 한 페이지에 보일 글 수
$page_row = 10;
// 한줄에 보여질 페이지 수
$page_scale = 10;
// 페이징을 출력할 변수 초기화
$paging_str = "";
// 3. 전체 회원 갯수 알아내기
$sql = "select count(*) as cnt from bd__member where 1";
$total_count = sql_total($sql);
// 4. 페이지 출력 내용 만들기
$paging_str = paging($page, $page_row, $page_scale, $total_count);
// 5. 시작 열을 구함
$from_record = ($page - 1) * $page_row;
// 6. 목록 구하기
$query = "select * from bd__member where 1 order by m_idx desc limit ".$from_record.", ".$page_row;
$data = sql_list($query);
?>
<br/>
<table style="width:1000px;height:50px;border:5px #CCCCCC solid;">
<tr>
<td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">회원 목록</td>
</tr>
</table>
<br/>
<table cellspacing="1" style="width:1000px;height:50px;border:0px;background-color:#999999;">
<tr>
<td align="center" valign="middle" width="5%" style="height:30px;background-color:#CCCCCC;">번호</td>
<td align="center" valign="middle" width="20%" style="height:30px;background-color:#CCCCCC;">아이디</td>
<td align="center" valign="middle" width="45%" style="height:30px;background-color:#CCCCCC;">이름</td>
<td align="center" valign="middle" width="30%" style="height:30px;background-color:#CCCCCC;">레벨</td>
</tr>
<?
if($total_count > 0){
for($i=0;$i<count($data);$i++){
?>
<tr>
<td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><?=($total_count - (($page - 1) * $page_row) - $i )?></td>
<td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><a href="./admin_member_modify.php?m_idx=<?=$data[$i][m_idx]?>&page=<?=$page?>"><?=$data[$i][m_id]?></a></td>
<td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;"><a href="./admin_member_modify.php?m_idx=<?=$data[$i][m_idx]?>&page=<?=$page?>"><?=$data[$i][m_name]?></a></td>
<td align="center" valign="middle" style="height:30px;background-color:#FFFFFF;">
<?
if($data[$i][m_level] == 1){
echo "일반회원";
}else if($data[$i][m_level] == 9){
echo "어드민";
}else{
echo $data[$i][m_level];
}?>
</td>
</tr>
<?
}
}else{?>
<tr>
<td align="center" valign="middle" colspan="4" style="height:50px;background-color:#FFFFFF;">회원이 하나도 없습니다.</td>
</tr>
<?}?>
</table>
[실행화면]
<?
// 1. 공통 인클루드 파일
include "./admin_head.php";
// 2. 회원 설정 데이터 불러오기
$sql = "select * from bd__member where m_idx = '".$_GET[m_idx]."'";
$data = sql_fetch($sql);
if(!$data[m_idx]){
alert("없는 회원입니다.");
}
// 3. 입력 HTML 출력
?>
<br/>
<table style="width:1000px;height:30px;border:5px #CCCCCC solid;">
<tr>
<td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">회원 정보수정</td>
</tr>
</table>
<br/>
<form name="bWriteForm" method="post" action="./admin_member_modify_save.php" style="margin:0px;">
<input type="hidden" name="m_idx" value="<?=$data[m_idx]?>">
<table style="width:1000px;height:30px;border:0px;">
<tr>
<td align="center" valign="middle" style="width:200px;height:30px;background-color:#CCCCCC;">회원아이디< /td>
<td align="left" valign="middle" style="width:800px;height:30px;"> <?=$data[m_id]?></td>
</tr>
<tr>
<td align="center" valign="middle" style="width:200px;height:30px;background-color:#CCCCCC;">회원이름< /td>
<td align="left" valign="middle" style="width:800px;height:30px;"><input type="text" name="m_name" style="width:780px;" value="<?=$data[m_name]?>"></td>
</tr>
<tr>
<td align="center" valign="middle" style="width:200px;height:30px;background-color:#CCCCCC;">레벨</td& gt;
<td align="left" valign="middle" style="width:800px;height:30px;">
<select name="m_level">
<option value="1" <?if($data[m_level] == 1){echo "selected";}?>>일반회원</option>
<option value="9" <?if($data[m_level] == 9){echo "selected";}?>>어드민</option>
</select>
</td>
</tr>
<!-- 4. 수정 버튼 클릭시 입력필드 검사 함수 write_save 실행 -->
<tr>
<td align="center" valign="middle" colspan="2"><input type="button" value=" 회원수정 " onClick="write_save();"> <input type="button" value=" 삭제 " onClick="location.replace('./admin_member_delete.php?m_idx=<?=$data[m_idx]?>')"> <input type="button" value=" 뒤로가기 " onClick="history.back();"></td>
</tr>
</table>
</form>
<script>
// 5.입력필드 검사함수
function write_save()
{
// 6.form 을 f 에 지정
var f = document.bWriteForm;
// 7.입력폼 검사
if(f.m_name.value == ""){
alert("회원이름을 입력해 주세요.");
return false;
}
// 8.검사가 성공이면 form 을 submit 한다
f.submit();
}
</script>
[admin_member_modify.php 소스]// 1. 공통 인클루드 파일
include "./admin_head.php";
// 2. 회원 설정 데이터 불러오기
$sql = "select * from bd__member where m_idx = '".$_GET[m_idx]."'";
$data = sql_fetch($sql);
if(!$data[m_idx]){
alert("없는 회원입니다.");
}
// 3. 입력 HTML 출력
?>
<br/>
<table style="width:1000px;height:30px;border:5px #CCCCCC solid;">
<tr>
<td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">회원 정보수정</td>
</tr>
</table>
<br/>
<form name="bWriteForm" method="post" action="./admin_member_modify_save.php" style="margin:0px;">
<input type="hidden" name="m_idx" value="<?=$data[m_idx]?>">
<table style="width:1000px;height:30px;border:0px;">
<tr>
<td align="center" valign="middle" style="width:200px;height:30px;background-color:#CCCCCC;">회원아이디< /td>
<td align="left" valign="middle" style="width:800px;height:30px;"> <?=$data[m_id]?></td>
</tr>
<tr>
<td align="center" valign="middle" style="width:200px;height:30px;background-color:#CCCCCC;">회원이름< /td>
<td align="left" valign="middle" style="width:800px;height:30px;"><input type="text" name="m_name" style="width:780px;" value="<?=$data[m_name]?>"></td>
</tr>
<tr>
<td align="center" valign="middle" style="width:200px;height:30px;background-color:#CCCCCC;">레벨</td& gt;
<td align="left" valign="middle" style="width:800px;height:30px;">
<select name="m_level">
<option value="1" <?if($data[m_level] == 1){echo "selected";}?>>일반회원</option>
<option value="9" <?if($data[m_level] == 9){echo "selected";}?>>어드민</option>
</select>
</td>
</tr>
<!-- 4. 수정 버튼 클릭시 입력필드 검사 함수 write_save 실행 -->
<tr>
<td align="center" valign="middle" colspan="2"><input type="button" value=" 회원수정 " onClick="write_save();"> <input type="button" value=" 삭제 " onClick="location.replace('./admin_member_delete.php?m_idx=<?=$data[m_idx]?>')"> <input type="button" value=" 뒤로가기 " onClick="history.back();"></td>
</tr>
</table>
</form>
<script>
// 5.입력필드 검사함수
function write_save()
{
// 6.form 을 f 에 지정
var f = document.bWriteForm;
// 7.입력폼 검사
if(f.m_name.value == ""){
alert("회원이름을 입력해 주세요.");
return false;
}
// 8.검사가 성공이면 form 을 submit 한다
f.submit();
}
</script>
<?
// 1. 공통 인클루드 파일
include "./admin_head.php";
// 2. 회원 존재여부 검사
$sql = "select * from bd__member where m_idx = '".$_POST[m_idx]."'";
$data = sql_fetch($sql);
if(!$data[m_idx]){
alert("없는 회원입니다.");
}
// 3. 넘어온 변수 검사
if(trim($_POST[m_name]) == ""){
alert("회원이름을 입력해 주세요.");
}
$m_idx = $_POST[m_idx];
// 4. 회원 저장
$sql = "update bd__member set
m_name = '".trim($_POST[m_name])."',
m_level = '".$_POST[m_level]."'
where m_idx = '".$m_idx."'
";
sql_query($sql);
// 5. 이름이 바귀었으면 회원 글과 코멘트의 이름 수정
if($data[m_name] != trim($_POST[m_name])){
$sql = "update bd__board set m_name ='".trim($_POST[m_name])."' where m_id = '".$data[m_id]."'";
sql_query($sql);
$sql = "update bd__comment set m_name ='".trim($_POST[m_name])."' where m_id = '".$data[m_id]."'";
sql_query($sql);
}
// 6. 회원목록 페이지로 보내기
alert("회원이 수정 되었습니다.", "./admin_member_list.php");
?>
[admin_member_modify_save.php 소스]// 1. 공통 인클루드 파일
include "./admin_head.php";
// 2. 회원 존재여부 검사
$sql = "select * from bd__member where m_idx = '".$_POST[m_idx]."'";
$data = sql_fetch($sql);
if(!$data[m_idx]){
alert("없는 회원입니다.");
}
// 3. 넘어온 변수 검사
if(trim($_POST[m_name]) == ""){
alert("회원이름을 입력해 주세요.");
}
$m_idx = $_POST[m_idx];
// 4. 회원 저장
$sql = "update bd__member set
m_name = '".trim($_POST[m_name])."',
m_level = '".$_POST[m_level]."'
where m_idx = '".$m_idx."'
";
sql_query($sql);
// 5. 이름이 바귀었으면 회원 글과 코멘트의 이름 수정
if($data[m_name] != trim($_POST[m_name])){
$sql = "update bd__board set m_name ='".trim($_POST[m_name])."' where m_id = '".$data[m_id]."'";
sql_query($sql);
$sql = "update bd__comment set m_name ='".trim($_POST[m_name])."' where m_id = '".$data[m_id]."'";
sql_query($sql);
}
// 6. 회원목록 페이지로 보내기
alert("회원이 수정 되었습니다.", "./admin_member_list.php");
?>
<?
// 1. 공통 인클루드 파일
include "./admin_head.php";
// 2. 회원 존재여부 검사
$sql = "select * from bd__member where m_idx = '".$_GET[m_idx]."'";
$data = sql_fetch($sql);
if(!$data[m_idx]){
alert("없는 회원입니다.");
}
$m_idx = $_GET[m_idx];
// 4. 회원 삭제
$sql = "delete from bd__member where m_idx = '".$m_idx."'";
sql_query($sql);
// 5. 글에 딸린 코멘트 및 파일 삭제를 위한 게시글 목록 구하기
$sql = "select * from bd__board where m_id = '".$data[m_id]."'";
$data1 = sql_list($sql);
// 6. 게시글 삭제
$sql = "delete from bd__board where m_id = '".$data[m_id]."'";
sql_query($sql);
// 7. 게시글에 딸린 코멘트 및 게시물 파일 삭제
for($i=0;$i<count($data1);$i++){
$sql = "delete from bd__comment where b_idx = '".$data1[b_idx]."'";
sql_query($sql);
$b_file = "./data/".$data1[b_idx];
@unlink($b_file);
}
// 8. 코멘트 삭제
$sql = "delete from bd__comment where m_id = '".$data1[m_id]."'";
sql_query($sql);
// 9. 회원목록 페이지로 보내기
alert("회원이 삭제 되었습니다.", "./admin_member_list.php");
?>
[admin_member_delete.php 소스]// 1. 공통 인클루드 파일
include "./admin_head.php";
// 2. 회원 존재여부 검사
$sql = "select * from bd__member where m_idx = '".$_GET[m_idx]."'";
$data = sql_fetch($sql);
if(!$data[m_idx]){
alert("없는 회원입니다.");
}
$m_idx = $_GET[m_idx];
// 4. 회원 삭제
$sql = "delete from bd__member where m_idx = '".$m_idx."'";
sql_query($sql);
// 5. 글에 딸린 코멘트 및 파일 삭제를 위한 게시글 목록 구하기
$sql = "select * from bd__board where m_id = '".$data[m_id]."'";
$data1 = sql_list($sql);
// 6. 게시글 삭제
$sql = "delete from bd__board where m_id = '".$data[m_id]."'";
sql_query($sql);
// 7. 게시글에 딸린 코멘트 및 게시물 파일 삭제
for($i=0;$i<count($data1);$i++){
$sql = "delete from bd__comment where b_idx = '".$data1[b_idx]."'";
sql_query($sql);
$b_file = "./data/".$data1[b_idx];
@unlink($b_file);
}
// 8. 코멘트 삭제
$sql = "delete from bd__comment where m_id = '".$data1[m_id]."'";
sql_query($sql);
// 9. 회원목록 페이지로 보내기
alert("회원이 삭제 되었습니다.", "./admin_member_list.php");
?>
다음시간에는 회원쪽의 공통인클루드와 회원가입부분을 배워보도록 하겠습니다.
반응형
'Programming' 카테고리의 다른 글
[PHP 강좌] 44. 설치형 게시판 만들기 7 - 사용자 로그인, 로그아웃, 정보수정 (0) | 2010.02.11 |
---|---|
[PHP 강좌] 43.설치형 게시판 만들기 6 - 사용자 공통파일, 회원가입 (0) | 2010.02.11 |
[PHP 강좌] 41. 설치형게시판 만들기 4 - 어드민페이지 (어드민 로그인 및 게시판 생성/설정 변경) (0) | 2010.02.11 |
[PHP 강좌] 40. 설치형 게시판 만들기 3 - 라이브러리 파일 만들기 (0) | 2010.02.11 |