SlideShare a Scribd company logo
1 of 12
Download to read offline
간단한 방명록 제작
           (두번째)

                 웹 데이터 베이스




한림대학교 금융정보통계학과               이   윤   환, yoonani72@gmail.com
서비스 정의
• 사이트에 방문한 방문객으로 하여금 간단한 글을 남기게
  한다.
• 한 페이지당 보여지는 게시물은 5개
  o 페이지 이동을 위한 버튼 제공
• 누구나 글을 볼 수 있다.
• 글을 쓰기 위해서는 사용자명을 입력한다.
• 게시물에 대해 암호를 주어 해당 암호를 알고 있으면 삭제
  할 수 있다.




한림대학교 금융정보통계학과         이   윤   환, yoonani72@gmail.com
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
);




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




한림대학교 금융정보통계학과               이   윤   환, yoonani72@gmail.com
action.php
• 유입 링크
  o action.php?action=update&id=글ID&start=전달하는페이지시작값
  o action.php?action=delete&id=글ID&start=전달하는페이지시작값
• GET으로 전달되는 값 처리
  o $action = $_GET["action"];
  o $id = $_GET["id"];
  o $start = $_GET["start"];
• Hidden을 이용하여 validate_user.php 에 값 전달
  o <input type="hidden" name="action" value="<?php echo
    $action;?>" />
  o <input type="hidden" name="id" value="<?php echo $id;?>" />
  o <input type="hidden" name="start" value="<?php echo $start;?>"
    />



한림대학교 금융정보통계학과                             이   윤   환, yoonani72@gmail.com
validate_user.php
• action.php 에서 입력한 암호와 게시물의 암호가 같은지
  검사
• action 값에 따라 수정과 삭제 페이지로 이동
• 변수 처리
  o $action = $_POST["action"];
  o $id = $_POST["id"];
  o $start = $_POST["start"];
• 암호 검사 부분
  o 기존 암호 가져오기
     • $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);

한림대학교 금융정보통계학과                             이   윤   환, yoonani72@gmail.com
validate_user.php
  o 입력 암호의 암호화
     • $sql = "SELECT password('" . trim($_POST["getPWD"]) . "');";
     • $result = mysql_query($sql);
     • $inputPwd = mysql_result($result, 0, 0);
  o 암호 비교
     • if(strcmp($storedPwd, $inputPwd))
          o strcmp 함수는 두 문자열을 비교하여 같으면 0 반환
• 페이지 이동            switch($action) {
                            case 'update' :
                    ?>
                            // 이동을 위한 JavaScript
                    <?php
                                     break;
                            case 'delete' :
                    ?>
                            // 이동을 위한 JavaScript
                    <?php
                                     break;
한림대학교 금융정보통계학과                              이 윤 환, yoonani72@gmail.com
                    }
글 수정
• 입력 변수와 점검
 $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);




한림대학교 금융정보통계학과                                   이   윤   환, yoonani72@gmail.com
글 수정
• 기본값 설정
  <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;?>" />




한림대학교 금융정보통계학과                             이   윤   환, yoonani72@gmail.com
글 수정 처리
• 폼 값 검정(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;




한림대학교 금융정보통계학과                                   이   윤   환, yoonani72@gmail.com
글 삭제
• 삭제 여부 재확인
  <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>


한림대학교 금융정보통계학과                                   이   윤   환, yoonani72@gmail.com
수고하셨습니다.
• 간략히 DB와 이를 연결하는 PHP에 대해 한학기간 살펴봤
  습니다.
• 고생많은셨고요…
• http://openx3.tistory.com 이나 페이스북 페이지 “Web
  개발해 봅시다 – 한림대학교”를 통해 궁금한 것 있으면 언
  제든 연락주시기 바랍니다.




한림대학교 금융정보통계학과              이   윤   환, yoonani72@gmail.com

More Related Content

What's hot

Web vulnerability seminar2
Web vulnerability seminar2Web vulnerability seminar2
Web vulnerability seminar2Sakuya Izayoi
 
다시보는 Angular js
다시보는 Angular js다시보는 Angular js
다시보는 Angular jsJeado Ko
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Kyoung Up Jung
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기Jeado Ko
 
Opinion 프로젝트 발표 자료
Opinion 프로젝트 발표 자료Opinion 프로젝트 발표 자료
Opinion 프로젝트 발표 자료joonseokkim11
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1성일 한
 
PHP 함수와 제어구조
PHP 함수와 제어구조PHP 함수와 제어구조
PHP 함수와 제어구조Yoonwhan Lee
 
코드리뷰 짝 매칭 프로그램 구현기
코드리뷰 짝 매칭 프로그램 구현기코드리뷰 짝 매칭 프로그램 구현기
코드리뷰 짝 매칭 프로그램 구현기Yong Hoon Kim
 
Node.js + Express + MongoDB
Node.js + Express + MongoDBNode.js + Express + MongoDB
Node.js + Express + MongoDBVincent Park
 
11주차 간단한 방명록 제작
11주차 간단한 방명록 제작11주차 간단한 방명록 제작
11주차 간단한 방명록 제작Yoonwhan Lee
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?Sang-ho Choi
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Kyoung Up Jung
 
[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index흥배 최
 

What's hot (14)

Web vulnerability seminar2
Web vulnerability seminar2Web vulnerability seminar2
Web vulnerability seminar2
 
다시보는 Angular js
다시보는 Angular js다시보는 Angular js
다시보는 Angular js
 
Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자Django로 쇼핑몰 만들자
Django로 쇼핑몰 만들자
 
자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기자바스크립트 프레임워크 살펴보기
자바스크립트 프레임워크 살펴보기
 
Opinion 프로젝트 발표 자료
Opinion 프로젝트 발표 자료Opinion 프로젝트 발표 자료
Opinion 프로젝트 발표 자료
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1
 
PHP 함수와 제어구조
PHP 함수와 제어구조PHP 함수와 제어구조
PHP 함수와 제어구조
 
코드리뷰 짝 매칭 프로그램 구현기
코드리뷰 짝 매칭 프로그램 구현기코드리뷰 짝 매칭 프로그램 구현기
코드리뷰 짝 매칭 프로그램 구현기
 
Node.js + Express + MongoDB
Node.js + Express + MongoDBNode.js + Express + MongoDB
Node.js + Express + MongoDB
 
Hacosa j query 11th
Hacosa j query 11thHacosa j query 11th
Hacosa j query 11th
 
11주차 간단한 방명록 제작
11주차 간단한 방명록 제작11주차 간단한 방명록 제작
11주차 간단한 방명록 제작
 
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
[커빙 아키텍쳐] 커빙은 어떻게 소셜 컨텐츠를 모아올까요?
 
Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.Django, 저는 이렇게 씁니다.
Django, 저는 이렇게 씁니다.
 
[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index[Sdc 3rd] Boost multi_index
[Sdc 3rd] Boost multi_index
 

Viewers also liked

12.세표본 이상의 평균비교
12.세표본 이상의 평균비교12.세표본 이상의 평균비교
12.세표본 이상의 평균비교Yoonwhan Lee
 
11.두표본의 평균비교
11.두표본의 평균비교11.두표본의 평균비교
11.두표본의 평균비교Yoonwhan Lee
 
02.자료다루기
02.자료다루기02.자료다루기
02.자료다루기Yoonwhan Lee
 
03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도Yoonwhan Lee
 
10.단일표본 평균 모비율
10.단일표본 평균 모비율10.단일표본 평균 모비율
10.단일표본 평균 모비율Yoonwhan Lee
 
13.상관과 회귀
13.상관과 회귀13.상관과 회귀
13.상관과 회귀Yoonwhan Lee
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R BasicsYoonwhan Lee
 

Viewers also liked (8)

01.r 기초
01.r 기초01.r 기초
01.r 기초
 
12.세표본 이상의 평균비교
12.세표본 이상의 평균비교12.세표본 이상의 평균비교
12.세표본 이상의 평균비교
 
11.두표본의 평균비교
11.두표본의 평균비교11.두표본의 평균비교
11.두표본의 평균비교
 
02.자료다루기
02.자료다루기02.자료다루기
02.자료다루기
 
03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도
 
10.단일표본 평균 모비율
10.단일표본 평균 모비율10.단일표본 평균 모비율
10.단일표본 평균 모비율
 
13.상관과 회귀
13.상관과 회귀13.상관과 회귀
13.상관과 회귀
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
 

Similar to 12주차 간단한 방명록 제작 - 두번째

10주차 php 사용하기-iii
10주차 php 사용하기-iii10주차 php 사용하기-iii
10주차 php 사용하기-iiiYoonwhan Lee
 
Web vulnerability seminar2
Web vulnerability seminar2Web vulnerability seminar2
Web vulnerability seminar2Sakuya Izayoi
 
React native 개발 및 javascript 기본
React native 개발 및 javascript 기본React native 개발 및 javascript 기본
React native 개발 및 javascript 기본Tj .
 
웹 개발 스터디 02 - javascript, bootstrap
웹 개발 스터디 02 - javascript, bootstrap웹 개발 스터디 02 - javascript, bootstrap
웹 개발 스터디 02 - javascript, bootstrapYu Yongwoo
 
Internet speed 인터넷 속도를 측정해보자
Internet speed 인터넷 속도를 측정해보자Internet speed 인터넷 속도를 측정해보자
Internet speed 인터넷 속도를 측정해보자민석 김
 
NAVER TECH CONCERT_FE2019_데이터 상태 관리. 그것을 알려주마
NAVER TECH CONCERT_FE2019_데이터 상태 관리. 그것을 알려주마NAVER TECH CONCERT_FE2019_데이터 상태 관리. 그것을 알려주마
NAVER TECH CONCERT_FE2019_데이터 상태 관리. 그것을 알려주마NAVER Engineering
 
[APM] Homepage bbs
[APM] Homepage bbs[APM] Homepage bbs
[APM] Homepage bbsKim Heejin
 
Cappuccino fundamental
Cappuccino fundamentalCappuccino fundamental
Cappuccino fundamentalJeongHun Byeon
 
Webframeworks angular js 세미나
Webframeworks angular js 세미나Webframeworks angular js 세미나
Webframeworks angular js 세미나WebFrameworks
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수NAVER D2
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지yongwoo Jeon
 
mongoDB 3 type modeling in production
mongoDB 3 type modeling in productionmongoDB 3 type modeling in production
mongoDB 3 type modeling in productionDongHan Kim
 
Software Architect day - 웹 프레임워크 종결 - metaworks3
Software Architect day - 웹 프레임워크 종결 -  metaworks3Software Architect day - 웹 프레임워크 종결 -  metaworks3
Software Architect day - 웹 프레임워크 종결 - metaworks3uEngine Solutions
 
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우XpressEngine
 
Modern web application with meteor
Modern web application with meteorModern web application with meteor
Modern web application with meteorJaeho Lee
 

Similar to 12주차 간단한 방명록 제작 - 두번째 (20)

PHP 사용하기
PHP 사용하기PHP 사용하기
PHP 사용하기
 
10주차 php 사용하기-iii
10주차 php 사용하기-iii10주차 php 사용하기-iii
10주차 php 사용하기-iii
 
Meteor2015 codelab
Meteor2015 codelab Meteor2015 codelab
Meteor2015 codelab
 
Web vulnerability seminar2
Web vulnerability seminar2Web vulnerability seminar2
Web vulnerability seminar2
 
React native 개발 및 javascript 기본
React native 개발 및 javascript 기본React native 개발 및 javascript 기본
React native 개발 및 javascript 기본
 
웹 개발 스터디 02 - javascript, bootstrap
웹 개발 스터디 02 - javascript, bootstrap웹 개발 스터디 02 - javascript, bootstrap
웹 개발 스터디 02 - javascript, bootstrap
 
Internet speed 인터넷 속도를 측정해보자
Internet speed 인터넷 속도를 측정해보자Internet speed 인터넷 속도를 측정해보자
Internet speed 인터넷 속도를 측정해보자
 
NAVER TECH CONCERT_FE2019_데이터 상태 관리. 그것을 알려주마
NAVER TECH CONCERT_FE2019_데이터 상태 관리. 그것을 알려주마NAVER TECH CONCERT_FE2019_데이터 상태 관리. 그것을 알려주마
NAVER TECH CONCERT_FE2019_데이터 상태 관리. 그것을 알려주마
 
[APM] Homepage bbs
[APM] Homepage bbs[APM] Homepage bbs
[APM] Homepage bbs
 
Cappuccino fundamental
Cappuccino fundamentalCappuccino fundamental
Cappuccino fundamental
 
Webframeworks angular js 세미나
Webframeworks angular js 세미나Webframeworks angular js 세미나
Webframeworks angular js 세미나
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
 
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
Html5 앱과 웹사이트를 보다 빠르게 하는 50가지
 
Hacosa jquery 1th
Hacosa jquery 1thHacosa jquery 1th
Hacosa jquery 1th
 
mongoDB 3 type modeling in production
mongoDB 3 type modeling in productionmongoDB 3 type modeling in production
mongoDB 3 type modeling in production
 
시종설 1조
시종설 1조시종설 1조
시종설 1조
 
Software Architect day - 웹 프레임워크 종결 - metaworks3
Software Architect day - 웹 프레임워크 종결 -  metaworks3Software Architect day - 웹 프레임워크 종결 -  metaworks3
Software Architect day - 웹 프레임워크 종결 - metaworks3
 
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
XE 오픈 세미나(2014-06-28) - (2/3) 레이아웃 제작 노하우
 
Modern web application with meteor
Modern web application with meteorModern web application with meteor
Modern web application with meteor
 
How to evaluate accessibility with automatic
How to evaluate accessibility with automaticHow to evaluate accessibility with automatic
How to evaluate accessibility with automatic
 

More from Yoonwhan Lee

09.통계적가설검정
09.통계적가설검정09.통계적가설검정
09.통계적가설검정Yoonwhan Lee
 
00.통계학입문
00.통계학입문00.통계학입문
00.통계학입문Yoonwhan Lee
 
14.범주형자료분석
14.범주형자료분석14.범주형자료분석
14.범주형자료분석Yoonwhan Lee
 
Smart work 자료 1
Smart work 자료 1Smart work 자료 1
Smart work 자료 1Yoonwhan Lee
 
통계자료 분석을 위한 R
통계자료 분석을 위한 R통계자료 분석을 위한 R
통계자료 분석을 위한 RYoonwhan Lee
 
통계자료분석을 ㅇ
통계자료분석을 ㅇ통계자료분석을 ㅇ
통계자료분석을 ㅇYoonwhan Lee
 
쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정Yoonwhan Lee
 
에버노트와 드롭박스 설치
에버노트와 드롭박스 설치에버노트와 드롭박스 설치
에버노트와 드롭박스 설치Yoonwhan Lee
 
표본들의 분포
표본들의 분포표본들의 분포
표본들의 분포Yoonwhan Lee
 
HTML Form과 배열
HTML Form과 배열HTML Form과 배열
HTML Form과 배열Yoonwhan Lee
 
Android 기초 앱 사용
Android 기초 앱 사용Android 기초 앱 사용
Android 기초 앱 사용Yoonwhan Lee
 
확률변수와 분포함수
확률변수와 분포함수확률변수와 분포함수
확률변수와 분포함수Yoonwhan Lee
 

More from Yoonwhan Lee (18)

09.통계적가설검정
09.통계적가설검정09.통계적가설검정
09.통계적가설검정
 
08.추정
08.추정08.추정
08.추정
 
07.표본분포
07.표본분포07.표본분포
07.표본분포
 
06.확률분포
06.확률분포06.확률분포
06.확률분포
 
05.확률
05.확률05.확률
05.확률
 
00.통계학입문
00.통계학입문00.통계학입문
00.통계학입문
 
14.범주형자료분석
14.범주형자료분석14.범주형자료분석
14.범주형자료분석
 
Smart work 자료 1
Smart work 자료 1Smart work 자료 1
Smart work 자료 1
 
통계자료 분석을 위한 R
통계자료 분석을 위한 R통계자료 분석을 위한 R
통계자료 분석을 위한 R
 
통계자료분석을 ㅇ
통계자료분석을 ㅇ통계자료분석을 ㅇ
통계자료분석을 ㅇ
 
MySQL 기초
MySQL 기초MySQL 기초
MySQL 기초
 
추정
추정추정
추정
 
쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정
 
에버노트와 드롭박스 설치
에버노트와 드롭박스 설치에버노트와 드롭박스 설치
에버노트와 드롭박스 설치
 
표본들의 분포
표본들의 분포표본들의 분포
표본들의 분포
 
HTML Form과 배열
HTML Form과 배열HTML Form과 배열
HTML Form과 배열
 
Android 기초 앱 사용
Android 기초 앱 사용Android 기초 앱 사용
Android 기초 앱 사용
 
확률변수와 분포함수
확률변수와 분포함수확률변수와 분포함수
확률변수와 분포함수
 

12주차 간단한 방명록 제작 - 두번째

  • 1. 간단한 방명록 제작 (두번째) 웹 데이터 베이스 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 2. 서비스 정의 • 사이트에 방문한 방문객으로 하여금 간단한 글을 남기게 한다. • 한 페이지당 보여지는 게시물은 5개 o 페이지 이동을 위한 버튼 제공 • 누구나 글을 볼 수 있다. • 글을 쓰기 위해서는 사용자명을 입력한다. • 게시물에 대해 암호를 주어 해당 암호를 알고 있으면 삭제 할 수 있다. 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 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 ); 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 4. 글 수정과 삭제 • action.php 에 URL을 통해 (GET 방식) action 변수 값에 전달된 값(update, delete)에 따라 수정과 삭제를 결정 한다. • action.php는 사용자의 암호를 물어보고 POST 방식으로 validate_user.php 로 전달한다. • 주어진 글에 대한 암호가 일치할 경우 수정 및 삭제 페이 지로 이동한다. o 수정의 경우 update.php 로 이동 o 삭제의 경우 delete.php로 이동 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 5. action.php • 유입 링크 o action.php?action=update&id=글ID&start=전달하는페이지시작값 o action.php?action=delete&id=글ID&start=전달하는페이지시작값 • GET으로 전달되는 값 처리 o $action = $_GET["action"]; o $id = $_GET["id"]; o $start = $_GET["start"]; • Hidden을 이용하여 validate_user.php 에 값 전달 o <input type="hidden" name="action" value="<?php echo $action;?>" /> o <input type="hidden" name="id" value="<?php echo $id;?>" /> o <input type="hidden" name="start" value="<?php echo $start;?>" /> 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 6. validate_user.php • action.php 에서 입력한 암호와 게시물의 암호가 같은지 검사 • action 값에 따라 수정과 삭제 페이지로 이동 • 변수 처리 o $action = $_POST["action"]; o $id = $_POST["id"]; o $start = $_POST["start"]; • 암호 검사 부분 o 기존 암호 가져오기 • $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); 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 7. validate_user.php o 입력 암호의 암호화 • $sql = "SELECT password('" . trim($_POST["getPWD"]) . "');"; • $result = mysql_query($sql); • $inputPwd = mysql_result($result, 0, 0); o 암호 비교 • if(strcmp($storedPwd, $inputPwd)) o strcmp 함수는 두 문자열을 비교하여 같으면 0 반환 • 페이지 이동 switch($action) { case 'update' : ?> // 이동을 위한 JavaScript <?php break; case 'delete' : ?> // 이동을 위한 JavaScript <?php break; 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com }
  • 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); 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 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;?>" /> 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 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; 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 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> 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com
  • 12. 수고하셨습니다. • 간략히 DB와 이를 연결하는 PHP에 대해 한학기간 살펴봤 습니다. • 고생많은셨고요… • http://openx3.tistory.com 이나 페이스북 페이지 “Web 개발해 봅시다 – 한림대학교”를 통해 궁금한 것 있으면 언 제든 연락주시기 바랍니다. 한림대학교 금융정보통계학과 이 윤 환, yoonani72@gmail.com