http://silnex.kro.kr/PHP_Tutorial/cookie_login/admin/admin_page.php
== PHP Admin Page ==

흐름도를 보면알 수 있다 시피 총 2개의 파일을 이용해 Register을 구현했다.
각 php 파일의 대한 설명은 admin.php > admin_del.php 순서로 하겠다.또한 login.php, main_page.php 또한 수정이 가해졌는데
이 부분에 대해선 중간 점검 글(06-28 예정)에서 알려주도록 하겠다.
Admin_Page.php
admin 계정으로 접속했을 때 main_page에 뜨는 링크를 통해 접속 할 수 있다.
<?php $user_id = $_COOKIE['user_id']; if (!$user_id == 'admin'){ echo "<script>alert('권한이 없습니다.')</script>"; echo "<meta http-equiv='refresh' content='0;url=../main_page.php'>"; } else{ echo "<h1> Admin page </h1>"; echo "<h2> Welcome admin (".$_COOKIE['user_name'].")!</h2>"; echo "<a href='../main_page.php'>Go To Main page</a>"; echo "<form method='post' action='admin_del.php'>"; echo "<table><tr><td>USER ID</td> <td>USER_PW</td> <td>USER_NAME</td> <td>USER_EMAIL</td> <td><input type='submit' value='삭제'/></td></tr>"; include_once('../conn.php'); $sql="SELECT * FROM `user_info`"; $result=mysqli_query($conn, $sql); while($db=mysqli_fetch_array($result)){ if($db['user_id'] == 'admin') continue; echo "<tr><td>".$db['user_id']."</td> <td>".$db['user_pw']."</td> <td>".$db['username']."</td> <td>".$db['email']."</td> <td><input type='checkbox' name='user_list[]' value='".$db['user_id']."'></td></tr>"; } echo "</table> </from>"; } ?>
분석
2번째 줄 : 현재 로그인한 계정의 정보를 쿠키에서 가져옴
3 ~6번 줄 : admin이 아닐 경우 main_page로 리디이렉션
8~10번 줄 : 페이지 제목과 main_page로 가는 링크를 띄움
12~번 줄 : <form>에 대한 설명은 생략하도록 하겠다.
13 번 줄 : 아래 표시될 user정보를 구별 하기 쉽게 하기위한 표의 제목 부분
16~18 줄 : DB와 연결하여 user_info의 정보를 모두 가져오는 SQL 쿼리를 실행
19~23 줄 : DB의 내용을 모두 표시하기 위해 반복문(while)을 사용
24 줄 : HTML 형식을 맞추기 위한 부분. (크게 중요하지 X)
Admin_Del.php
admin_page에서 선택된 user의 항목을 모두 삭제 하는 SQL쿼리를 실행하는 파일
<?php if(!isset($_POST['user_list'])){ echo "<script>alert('Choice USER!');"; echo "history.back()</script>"; }else{ foreach($_POST['user_list'] as $user){ include('../conn.php'); $sql="DELETE FROM `user_info` WHERE `user_id`='$user'"; mysqli_query($conn, $sql); } echo "<script>alert('DELETED!!')</script>"; echo "<meta http-equiv='refresh' content='0;url=admin_page.php'/>"; } ?>
분석
2~4 줄 : 삭제할 USER가 선택 되지 않은 경우에 대한 예외 처리
6~10 줄 : 삭제할 USER 들의 정보를 POST를 통해 전달 받은 뒤에
반복문을 통해 제거 SQL 쿼리를 전달
11~12 줄 : 삭제 완료 후 admin_page로 리다이렉션