간단한 방명록 제작
     (두번째)


웹 데이터 베이스
서비스 정의
• 사이트에 방문한 방문객으로 하여금 간단한 글을
  남기게 한다.
• 한 페이지당 보여지는 게시물은 5개
    • 페이지 이동을 위한 버튼 제공
• 누구나 글을 볼 수 있다.
• 글을 쓰기 위해서는 사용자명을 입력한다.
• 게시물에 대해 암호를 주어 해당 암호를 알고 있
  으면 삭제할 수 있다.




한림대학교 웹데이터베이스 - 이윤환
TABLE
CREATE TABLE gbook (
      gb_id        int unsigned NOT NULL
                   AUTO_INCREMENT PRIMARY KEY,
      writer       varchar(50)   NOT NULL,
      regDate            datetime     NOT NULL,
      comments           text         NOT NULL,
      userpwd            char(41)     NOT NULL
);




한림대학교 웹데이터베이스 - 이윤환
글 수정과 삭제
action.php 에 URL을 통해 (GET 방식) action 변
수 값에 전달된 값(update, delete)에 따라 수정과
삭제를 결정한다.
action.php는 사용자의 암호를 물어보고 POST 방
식으로validate_user.php 로 전달한다.
주어진 글에 대한 암호가 일치할 경우 수정 및 삭제
페이지로 이동한다.
 • 수정의 경우 update.php 로 이동
 • 삭제의 경우 delete.php로 이동




한림대학교 웹데이터베이스 - 이윤환
ACTION.PHP
유입 링크
 • action.php?action=update&id=글ID&start=전달하는페이지시작값
 • action.php?action=delete&id=글ID&start=전달하는페이지시작값
GET으로 전달되는 값 처리
 • $action = $_GET["action"];
 • $id = $_GET["id"];
 • $start = $_GET["start"];
Hidden을 이용하여 validate_user.php 에 값 전
달
 • <input type="hidden" name="action" value="<?php echo
   $action;?>" />
 • <input type="hidden" name="id" value="<?php echo $id;?>" />
 • <input type="hidden" name="start" value="<?php echo $start;?>"
   />


한림대학교 웹데이터베이스 - 이윤환
VALIDATE_USER.PHP
action.php 에서 입력한 암호와 게시물의 암호가 같은
지 검사
action 값에 따라 수정과 삭제 페이지로 이동
변수 처리
 • $action = $_POST["action"];
 • $id = $_POST["id"];
 • $start = $_POST["start"];
암호 검사 부분
 • 기존 암호 가져오기
     • $sql = "SELECT userpwd FROM gbook WHERE gb_id = " . $id;
     • $result = mysql_query($sql);
     • $isHere = mysql_num_rows($result);
     • if($isHere) {
              $storedPwd = mysql_result($result, 0, 0);


한림대학교 웹데이터베이스 - 이윤환
VALIDATE_USER.PHP
 • 입력 암호의 암호화
     • $sql = "SELECT password('" . trim($_POST["getPWD"]) . "');";
     • $result = mysql_query($sql);
     • $inputPwd = mysql_result($result, 0, 0);
 • 암호 비교
     • if(strcmp($storedPwd, $inputPwd))
          • strcmp 함수는 두 문자열을 비교하여 같으면 0 반환

페이지 이동 switch($action) { case 'update' :
                  ?>
                         // 이동을 위한 JavaScript
                  <?php
                                 break;
                         case 'delete' :
                  ?>
                         // 이동을 위한 JavaScript
                  <?php
                                 break;
                  }
한림대학교 웹데이터베이스 - 이윤환
글 수정
입력 변수와 점검
 $action = $_GET["action"];
 $id = $_GET["id"];
 $start = $_GET["start"];

 if(isset($_GET["action"]) AND isset($_GET["id"]) AND
 isset($_GET["start"])) {

기존 내용 가져오기
$sql = "SELECT gb_id, writer, comments FROM gbook WHERE
gb_id=" . $id;
$result = mysql_query($sql);
$rows = mysql_fetch_array($result, MYSQL_ASSOC);




한림대학교 웹데이터베이스 - 이윤환
글 수정
기본값 설정
    <input id="getID" name="getID" type="text" size="20"
    maxlength="20" value="<?php echo $rows["writer"];?>" />
    …
    <textarea id="getComments" name="getComments"
    rows="10" cols="40"><?php echo
    $rows["comments"];?></textarea>




hidden을 통한 값 전달
<input type="hidden" name="id" value="<?php echo $id;?>" />
<input type="hidden" name="start" value="<?php echo $start;?>" />




한림대학교 웹데이터베이스 - 이윤환
글 수정 처리
폼 값 검정(Form Validation) – 글쓰기와 동일
수정을 위한 SQL – UPDATE
   $sql = "UPDATE gbook SET
           writer='" . $getID . "',
           comments='" . $getComments . "',
           userPwd=password('" . $getPWD . "')
           WHERE gb_id = " . $_POST["id"];


돌아가기
echo "<script type="text/javascript">n";
echo " location.href='list.php?start=" . $_POST["start"] . "';n";
echo "</script>n";
exit;



한림대학교 웹데이터베이스 - 이윤환
글 삭제
삭제 여부 재확인
 <script type="text/javascript">
 var isDel = confirm("정말로 삭제하시겠습니까?");
 if(!isDel) {
          location.href='list.php?start=' + '<?php echo $start;?>';
 }
 </script>

삭제를 위한 SQL – DELETE
   $sql = "DELETE FROM gbook WHERE gb_id = " . $id;


돌아가기
  <script type="text/javascript">
          alert("삭제하였습니다.");
          location.href='list.php?start=' + '<?php echo
  $start;?>';
  </script>
한림대학교 웹데이터베이스 - 이윤환
수고하셨습니다.
PHP 를 사용하는 방법에 대해 한학기간 살펴봤습니
다.
기말과제는 로그인한 사용자만 글쓰기가 가능하고
그렇지 않은 사용자는 읽을 수 있는 방명록을 만드
시면 됩니다.
http://openx3.tistory.com 이나 페이스북 페이
지 “Web 개발해 봅시다 – 한림대학교”를 통해 궁
금한 것 있으면 언제든 연락주시기 바랍니다.




한림대학교 웹데이터베이스 - 이윤환

Class10

  • 1.
    간단한 방명록 제작 (두번째) 웹 데이터 베이스
  • 2.
    서비스 정의 • 사이트에방문한 방문객으로 하여금 간단한 글을 남기게 한다. • 한 페이지당 보여지는 게시물은 5개 • 페이지 이동을 위한 버튼 제공 • 누구나 글을 볼 수 있다. • 글을 쓰기 위해서는 사용자명을 입력한다. • 게시물에 대해 암호를 주어 해당 암호를 알고 있 으면 삭제할 수 있다. 한림대학교 웹데이터베이스 - 이윤환
  • 3.
    TABLE CREATE TABLE gbook( gb_id int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, writer varchar(50) NOT NULL, regDate datetime NOT NULL, comments text NOT NULL, userpwd char(41) NOT NULL ); 한림대학교 웹데이터베이스 - 이윤환
  • 4.
    글 수정과 삭제 action.php에 URL을 통해 (GET 방식) action 변 수 값에 전달된 값(update, delete)에 따라 수정과 삭제를 결정한다. action.php는 사용자의 암호를 물어보고 POST 방 식으로validate_user.php 로 전달한다. 주어진 글에 대한 암호가 일치할 경우 수정 및 삭제 페이지로 이동한다. • 수정의 경우 update.php 로 이동 • 삭제의 경우 delete.php로 이동 한림대학교 웹데이터베이스 - 이윤환
  • 5.
    ACTION.PHP 유입 링크 •action.php?action=update&id=글ID&start=전달하는페이지시작값 • action.php?action=delete&id=글ID&start=전달하는페이지시작값 GET으로 전달되는 값 처리 • $action = $_GET["action"]; • $id = $_GET["id"]; • $start = $_GET["start"]; Hidden을 이용하여 validate_user.php 에 값 전 달 • <input type="hidden" name="action" value="<?php echo $action;?>" /> • <input type="hidden" name="id" value="<?php echo $id;?>" /> • <input type="hidden" name="start" value="<?php echo $start;?>" /> 한림대학교 웹데이터베이스 - 이윤환
  • 6.
    VALIDATE_USER.PHP action.php 에서 입력한암호와 게시물의 암호가 같은 지 검사 action 값에 따라 수정과 삭제 페이지로 이동 변수 처리 • $action = $_POST["action"]; • $id = $_POST["id"]; • $start = $_POST["start"]; 암호 검사 부분 • 기존 암호 가져오기 • $sql = "SELECT userpwd FROM gbook WHERE gb_id = " . $id; • $result = mysql_query($sql); • $isHere = mysql_num_rows($result); • if($isHere) { $storedPwd = mysql_result($result, 0, 0); 한림대학교 웹데이터베이스 - 이윤환
  • 7.
    VALIDATE_USER.PHP • 입력암호의 암호화 • $sql = "SELECT password('" . trim($_POST["getPWD"]) . "');"; • $result = mysql_query($sql); • $inputPwd = mysql_result($result, 0, 0); • 암호 비교 • if(strcmp($storedPwd, $inputPwd)) • strcmp 함수는 두 문자열을 비교하여 같으면 0 반환 페이지 이동 switch($action) { case 'update' : ?> // 이동을 위한 JavaScript <?php break; case 'delete' : ?> // 이동을 위한 JavaScript <?php break; } 한림대학교 웹데이터베이스 - 이윤환
  • 8.
    글 수정 입력 변수와점검 $action = $_GET["action"]; $id = $_GET["id"]; $start = $_GET["start"]; if(isset($_GET["action"]) AND isset($_GET["id"]) AND isset($_GET["start"])) { 기존 내용 가져오기 $sql = "SELECT gb_id, writer, comments FROM gbook WHERE gb_id=" . $id; $result = mysql_query($sql); $rows = mysql_fetch_array($result, MYSQL_ASSOC); 한림대학교 웹데이터베이스 - 이윤환
  • 9.
    글 수정 기본값 설정 <input id="getID" name="getID" type="text" size="20" maxlength="20" value="<?php echo $rows["writer"];?>" /> … <textarea id="getComments" name="getComments" rows="10" cols="40"><?php echo $rows["comments"];?></textarea> hidden을 통한 값 전달 <input type="hidden" name="id" value="<?php echo $id;?>" /> <input type="hidden" name="start" value="<?php echo $start;?>" /> 한림대학교 웹데이터베이스 - 이윤환
  • 10.
    글 수정 처리 폼값 검정(Form Validation) – 글쓰기와 동일 수정을 위한 SQL – UPDATE $sql = "UPDATE gbook SET writer='" . $getID . "', comments='" . $getComments . "', userPwd=password('" . $getPWD . "') WHERE gb_id = " . $_POST["id"]; 돌아가기 echo "<script type="text/javascript">n"; echo " location.href='list.php?start=" . $_POST["start"] . "';n"; echo "</script>n"; exit; 한림대학교 웹데이터베이스 - 이윤환
  • 11.
    글 삭제 삭제 여부재확인 <script type="text/javascript"> var isDel = confirm("정말로 삭제하시겠습니까?"); if(!isDel) { location.href='list.php?start=' + '<?php echo $start;?>'; } </script> 삭제를 위한 SQL – DELETE $sql = "DELETE FROM gbook WHERE gb_id = " . $id; 돌아가기 <script type="text/javascript"> alert("삭제하였습니다."); location.href='list.php?start=' + '<?php echo $start;?>'; </script> 한림대학교 웹데이터베이스 - 이윤환
  • 12.
    수고하셨습니다. PHP 를 사용하는방법에 대해 한학기간 살펴봤습니 다. 기말과제는 로그인한 사용자만 글쓰기가 가능하고 그렇지 않은 사용자는 읽을 수 있는 방명록을 만드 시면 됩니다. http://openx3.tistory.com 이나 페이스북 페이 지 “Web 개발해 봅시다 – 한림대학교”를 통해 궁 금한 것 있으면 언제든 연락주시기 바랍니다. 한림대학교 웹데이터베이스 - 이윤환