SlideShare una empresa de Scribd logo
1 de 19
객체 그리고,
데이터의 연결 유지

웹데이터베이스 구축 및 실습
객체 지향 프로그래밍
함수(기능) 중심 vs. 객체지향 프로그래밍
 • 함수 중심
    • 기능에 초점을 맞추어 순차적으로 어떤 기능들을
      수행하여야 하는지를 표현
    • 수행하여야 하는 기능들을 함수화
    • 처리 순서를 고려하여 작성해둔 함수 호출
 • 객체지향
    • 기능이 아닌 데이터에 초점
    • 객체라는 단위로 모든 처리 표현
    • 모든 사물을 속성(property)과 기능(method)을 가진
      객체로 간주

한림대학교 웹데이터베이스 - 이윤환
객체 지향 프로그래밍
클래스(Class) 키워드
 • 메소드와 속성 정의.
       사람    class Human {
                  public $Name;
        이름        public $Age;
        나이        public $Height;
  속성              public $Weight;
        키
                  public function Eat ( $foods ) {
        체중           echo “우걱우걱~ 맛있는”. $foods . “<BR>”;
       먹는다        }
  기능   걷는다        public function Walk ( $destination ) {
                     echo $destination . “까지 걸어요.<BR>”;
       말한다        }
                  public function Talk ( $words ) {
                     echo $words . “<BR>”;
                  }
                }
한림대학교 웹데이터베이스 - 이윤환
객체 지향 프로그래밍 - 속성
속성
 • 데이터
     • 표현하고자 하는 대상이 가질 수 있는 속성 값
 • (class 문 내에서)속성의 이름 지정
     • 속성 값은 메소드에 의해 변경
     • 초기값은 생성자라는 특수한 메소드에 의해 지정
 • 제한자에 의해 접근 레벨을 달리할 수 있음
     • 객체지향 프로그래밍에서는 직접 속성값을 변경하
       지 않고 메소드만 외부에 노출
     • 노출된 메소드에 의해 값 변경
     • 상속 등에서 접근 제한자를 통해 변경 가능한 범위
       지정

한림대학교 웹데이터베이스 - 이윤환
객체 지향 프로그래밍 - 메소드
생성자(Constructor)
 • class 문 내에서 사용
 • 객체 초기화
       • 일반적으로 클래스의 이름과 동일한 메소드
       • PHP5에서는 __construct()라는 이름의 메소드
       • 반드시 필요한 것이 아니므로 생략 가능

function __construct($hname) {   • $this : 현재의 클래스를 가리키는 변수
     $this->Name = $hname;         • 이를 이용하여 클래스 내의
     $this->Age = 1;                 멤버 변수나 함수에 접근 가능.
}
                                 • -> : 속성과 메소드명을 다룸
                                   • 변수의 경우 변수 앞의 “$” 기호를
                                     제외해야 함.



한림대학교 웹데이터베이스 - 이윤환
객체 지향 프로그래밍 - 메소드
소멸자(destructor)
 • 객체 소멸시 해야 하는 일 정의.
    • __destruct()라는 이름
       • 파라미터를 가지지 못함.

      function __destruct() {
               $this->Talk( “창문을 닫아 주오!”);
      }




한림대학교 웹데이터베이스 - 이윤환
객체 지향 프로그래밍 – 객체 사용
인스턴스(Instance) 생성하기
 • 클래스를 통해 사용할 객체 생성
    • new 키워드 사용
    • 전달인자는 생성자의 전달인자
     <?php
     $charles = new Human(‘철수’);
     $younghee = new Human(‘영희’, 1, 50, 3.5);
     $charles = NULL;     //철수 객체 제거
     $younghee = NULL;    //영희 객체 제거
     ?>




한림대학교 웹데이터베이스 - 이윤환
객체 지향 프로그래밍 – 객체 사용
객체의 속성과 기능 사용하기
 • “->” 사용
 • 여기서 사용된 속성과 메소드는 public

  <?php
  $charles = new Human(‘철수’, 5); //5살짜리 철수를 생성합니다.
  $charles->Talk($charles->Age);    //철수는 몇 살?
  $charles->Eat(“dinner”);         //철수야! 밥 먹자~


  //밥을 먹고 난 후 철수의 키와 몸무게가 늘었다.
  $charles->Height = 110;          // 110 cm
  $charles->Weight = 22;           // 22 Kg
  ?>


한림대학교 웹데이터베이스 - 이윤환
객체 지향 프로그래밍 – 상속
기존의 클래스의 속성과 기능을 상속받아 새로운
클래스 정의.
 • 최상위 클래스는 가장 일반적인 요소의 추상화
      • 상속의 과정은 세분화의 과정
 • extends 키워드 사용
 <?php
 class Baby Extends Human {                   // 인간 클래스 상속
         function 모유먹기 () { echo “냠냠~”; }
         function 천사와대화 () { echo “옹알~ 옹알~”; }
 }
 $재민 = new Baby(‘재민’); //아기 클래스를 이용해 재민이 객체 생성
 $재민->천사와대화();                   // 옹알~ 옹알~
 ?>


한림대학교 웹데이터베이스 - 이윤환
객체 지향 프로그래밍 – 접근제한자
클래스 내부 접근을 위한 세 가지 키워드.
 • 클래스 설계 시 자신이 설계한 클래스를 보다 안
   전하게 사용하기 위해 외부로 공개된 함수와 변
   수로만 클래스를 접근하여 사용

       제한자                 설 명

       public     외부에서 접근 가능

      protected   상속 계통에서만 접근 가능

       private    클래스 내부에서만 접근 가능



한림대학교 웹데이터베이스 - 이윤환
데이터 유지 방법


쿠키와 세션
쿠키(COOKIE)
필요한 정보를 클라이언트 측에 보관하는 방법
 • 쿠키는 웹 페이지로의 연속되는 방문 사이에 또
   는 웹 사이트 내에서 다른 페이지들간의 방문 사
   이에 상태(state)를 유지하는 문제를 해결하기 위
   해 개발되었다.
 • 쿠키는 웹 서버들이 클라이언트의 하드 드라이
   브 상에 데이터를 저장하고 검색한다.
 • “name = value” 형태의 간단한 텍스트 문자열이
   며 클라이언트쪽에 지속적으로 저장된다.



한림대학교 웹데이터베이스 - 이윤환
쿠키(COOKIE)
PHP에서 쿠키 다루기

    bool setcookie (쿠키이름, 쿠키값, 만료시간, 경로, 도메인, 보안);




                   [표6-1] setcookie 함수의 인자




한림대학교 웹데이터베이스 - 이윤환
쿠키(COOKIE)
Cookie 사용하기
 • 해당 쿠키명이 키인 $_COOKIE 연관배열
 • Example : cookie.php vs. non-cookie.php

Cookie 삭제하기
 • setcookie(“삭제할 Cookie 변수명”)
 • setcookie(“삭제할 Cookie 변수명”, “값”, time()-3600)
     • cookie 변수를 과거로 보낸다. 현재에는 유효하지 않다.


함정
 • setcookie를 사용하여 Cookie를 생성하기 전에 어떠한 데이터
   도 Client에 보내지면 안된다.

한림대학교 웹데이터베이스 - 이윤환
세션(SESSION)
세션은 쿠키와 유사하나 웹 서버에 저장됨.
 • 쿠키는 사용자의 컴퓨터에 저장되므로 사용자가 홈페이
   지에 들어오는 것은 알 수 있으나 로그아웃 하지 않고 나
   갈 경우 웹 서버에서 알 수 없음.
 • 세션은 서버 측에 존재하므로 웹 서버가 주기적으로 세
   션의 상태를 확인 가능.
    • 특정 시간 동안 웹 사이트 내에서 어떠한 이동도 발생하지 않을 경우
      사용자가 나간 것으로 간주하고 세션 삭제 가능.




                 [그림6-17] 세션의 저장

한림대학교 웹데이터베이스 - 이윤환
세션(SESSION)
세션의 제거
 • 서버의 하드디스크 용량의 문제 및 세션의 관리를 위해 제거
 • 주기적으로 관리하여 필요 없다고 느끼는 세션을 지움.
     • 기본적으로 24분을 기준으로 하여 세션 삭제

보안
 • 세션은 서버 측에 저장되므로 세션 값을 사용자가 변조할 수 없음.
      • 무작위의 숫자로 이루어진 세션 ID를 사용자에게 발급, 서버
        측에 기록함.
      • 웹 서버는 사용자의 세션 ID를 확인하여 사용자의 상태 유지.
 • 그러나 주기적으로 상태를 확인하고, 서버 측에 정보가 저장되므로
   웹 서버에 부담을 줌




한림대학교 웹데이터베이스 - 이윤환
세션(SESSION)
세션 시작하기
    • PHP에서 사용하기 위해 세션을 시작해야 함.
        • session_start()
            • 쿠키와 마찬가지로 어떤 정보도 클라이언트에 전달되기
              전에 사용
        • 세션을 시작하면 사용자에게 세션 ID가 발급됨.
            • PHPSESSID라는 이름으로 쿠키로 기록
1   <?php
2     session_start();
3   ?>




한림대학교 웹데이터베이스 - 이윤환
세션(SESSION)
세션 변수 등록하기
 • PHP 4.1 버전 이전에는 세션에 사용되는 변수를 별도로 등록.
 • 최신 버전의 PHP에서는 세션 변수를 사용.
       • $_SESSION 연관배열을 사용하여 세션 변수를 등록하고 값 저장.
       • [예제 6-7] 세션 변수 등록.

   1    <?php
   2      session_start();
   3      $_SESSION['message'] = 'Welcome to PHP world!<BR>';
   4
   5    ?>
   6    <a href="read_session.php">다음 페이지</a>




한림대학교 웹데이터베이스 - 이윤환
세션(SESSION)
세션 변수 사용하기
 • $_SESSION 배열을 사용하여 세션 변수를 사용.
      • session_id() 함수 : 현재 사용자의 세션 ID

      //read_session.php
      1 <?php
      2      session_start();
      3
      4      echo $_SESSION['message'];
      5      echo "<P>";
      6      echo "PHPSESSID=" . session_id();
      7 ?>




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

Más contenido relacionado

La actualidad más candente

0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
Sung-hoon Ma
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
ETRIBE_STG
 
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_5차_데이터분석_조범석_20120613
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_5차_데이터분석_조범석_20120613KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_5차_데이터분석_조범석_20120613
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_5차_데이터분석_조범석_20120613
KTH, 케이티하이텔
 

La actualidad más candente (20)

Fluent Python - Chapter 8
Fluent Python - Chapter 8Fluent Python - Chapter 8
Fluent Python - Chapter 8
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1
 
Perl Script
Perl ScriptPerl Script
Perl Script
 
Web vulnerability seminar2
Web vulnerability seminar2Web vulnerability seminar2
Web vulnerability seminar2
 
파이썬 모듈 패키지
파이썬 모듈 패키지파이썬 모듈 패키지
파이썬 모듈 패키지
 
자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초자바스크립트 기초문법~함수기초
자바스크립트 기초문법~함수기초
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
파이썬 언어 기초
파이썬 언어 기초파이썬 언어 기초
파이썬 언어 기초
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4
 
Javascript 교육자료 pdf
Javascript 교육자료 pdfJavascript 교육자료 pdf
Javascript 교육자료 pdf
 
파이썬 유용한 라이브러리
파이썬 유용한 라이브러리파이썬 유용한 라이브러리
파이썬 유용한 라이브러리
 
Hacosa j query 10th
Hacosa j query 10thHacosa j query 10th
Hacosa j query 10th
 
파이썬 기본 문법
파이썬 기본 문법파이썬 기본 문법
파이썬 기본 문법
 
유니티 REST API를 사용한 파이어 베이스의 데이터 베이스 사용.
유니티 REST API를 사용한 파이어 베이스의 데이터 베이스 사용.유니티 REST API를 사용한 파이어 베이스의 데이터 베이스 사용.
유니티 REST API를 사용한 파이어 베이스의 데이터 베이스 사용.
 
0.javascript기본(~3일차내)
0.javascript기본(~3일차내)0.javascript기본(~3일차내)
0.javascript기본(~3일차내)
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
 
MySQL JOIN
MySQL JOINMySQL JOIN
MySQL JOIN
 
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_5차_데이터분석_조범석_20120613
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_5차_데이터분석_조범석_20120613KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_5차_데이터분석_조범석_20120613
KTH_Detail day_화성에서 온 개발자 금성에서 온 기획자 시리즈_5차_데이터분석_조범석_20120613
 
자바야 놀자 PPT
자바야 놀자 PPT자바야 놀자 PPT
자바야 놀자 PPT
 
Django와 flask
Django와 flaskDjango와 flask
Django와 flask
 

Similar a PHP에서 객체와 데이터 연결 유지

웹 개발 스터디 01 - PHP 파일 업로드, 다운로드
웹 개발 스터디 01 - PHP 파일 업로드, 다운로드웹 개발 스터디 01 - PHP 파일 업로드, 다운로드
웹 개발 스터디 01 - PHP 파일 업로드, 다운로드
Yu Yongwoo
 
웹 개발 스터디 01 - PHP, MySQL 연동
웹 개발 스터디 01 - PHP, MySQL 연동웹 개발 스터디 01 - PHP, MySQL 연동
웹 개발 스터디 01 - PHP, MySQL 연동
Yu Yongwoo
 
엄준일 04일차 HTML/Javascript 교육
엄준일 04일차 HTML/Javascript 교육엄준일 04일차 HTML/Javascript 교육
엄준일 04일차 HTML/Javascript 교육
준일 엄
 
Selenium을 이용한 동적 사이트 크롤러 만들기
Selenium을 이용한 동적 사이트 크롤러 만들기Selenium을 이용한 동적 사이트 크롤러 만들기
Selenium을 이용한 동적 사이트 크롤러 만들기
Gyuhyeon Jeon
 
9 object class
9 object class9 object class
9 object class
웅식 전
 

Similar a PHP에서 객체와 데이터 연결 유지 (20)

Java_05 class
Java_05 classJava_05 class
Java_05 class
 
Java class
Java classJava class
Java class
 
웹 개발 스터디 01 - PHP 파일 업로드, 다운로드
웹 개발 스터디 01 - PHP 파일 업로드, 다운로드웹 개발 스터디 01 - PHP 파일 업로드, 다운로드
웹 개발 스터디 01 - PHP 파일 업로드, 다운로드
 
웹 개발 스터디 01 - PHP, MySQL 연동
웹 개발 스터디 01 - PHP, MySQL 연동웹 개발 스터디 01 - PHP, MySQL 연동
웹 개발 스터디 01 - PHP, MySQL 연동
 
엄준일 04일차 HTML/Javascript 교육
엄준일 04일차 HTML/Javascript 교육엄준일 04일차 HTML/Javascript 교육
엄준일 04일차 HTML/Javascript 교육
 
객체지향 프로그래밍 기본
객체지향 프로그래밍 기본객체지향 프로그래밍 기본
객체지향 프로그래밍 기본
 
Java script
Java scriptJava script
Java script
 
Restful web service
Restful web serviceRestful web service
Restful web service
 
MySQL 기초
MySQL 기초MySQL 기초
MySQL 기초
 
REST with Spring
REST with SpringREST with Spring
REST with Spring
 
HTML Form과 배열
HTML Form과 배열HTML Form과 배열
HTML Form과 배열
 
Selenium을 이용한 동적 사이트 크롤러 만들기
Selenium을 이용한 동적 사이트 크롤러 만들기Selenium을 이용한 동적 사이트 크롤러 만들기
Selenium을 이용한 동적 사이트 크롤러 만들기
 
Java script 기본과 jquery의 활용
Java script 기본과 jquery의 활용Java script 기본과 jquery의 활용
Java script 기본과 jquery의 활용
 
[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)[자바카페] 자바 객체지향 프로그래밍 (2017)
[자바카페] 자바 객체지향 프로그래밍 (2017)
 
9 object class
9 object class9 object class
9 object class
 
4-3. jquery
4-3. jquery4-3. jquery
4-3. jquery
 
Hacosa jquery 1th
Hacosa jquery 1thHacosa jquery 1th
Hacosa jquery 1th
 
Software Architect day - 웹 프레임워크 종결 - metaworks3
Software Architect day - 웹 프레임워크 종결 -  metaworks3Software Architect day - 웹 프레임워크 종결 -  metaworks3
Software Architect day - 웹 프레임워크 종결 - metaworks3
 
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
자바 웹 개발 시작하기 (6주차 : 커뮤니티를 만들어보자!)
 
PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약PHP 7의 새로운 특징과 기능 요약
PHP 7의 새로운 특징과 기능 요약
 

Más de Yoonwhan Lee (20)

R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
 
03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도03.기술통계 자료의 중심과 퍼진정도
03.기술통계 자료의 중심과 퍼진정도
 
02.자료다루기
02.자료다루기02.자료다루기
02.자료다루기
 
01.r 기초
01.r 기초01.r 기초
01.r 기초
 
13.상관과 회귀
13.상관과 회귀13.상관과 회귀
13.상관과 회귀
 
12.세표본 이상의 평균비교
12.세표본 이상의 평균비교12.세표본 이상의 평균비교
12.세표본 이상의 평균비교
 
11.두표본의 평균비교
11.두표본의 평균비교11.두표본의 평균비교
11.두표본의 평균비교
 
10.단일표본 평균 모비율
10.단일표본 평균 모비율10.단일표본 평균 모비율
10.단일표본 평균 모비율
 
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
 
통계자료분석을 ㅇ
통계자료분석을 ㅇ통계자료분석을 ㅇ
통계자료분석을 ㅇ
 
추정
추정추정
추정
 
쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정쿠키를 통해 구현해보는 간단한 로그인 과정
쿠키를 통해 구현해보는 간단한 로그인 과정
 

PHP에서 객체와 데이터 연결 유지

  • 1. 객체 그리고, 데이터의 연결 유지 웹데이터베이스 구축 및 실습
  • 2. 객체 지향 프로그래밍 함수(기능) 중심 vs. 객체지향 프로그래밍 • 함수 중심 • 기능에 초점을 맞추어 순차적으로 어떤 기능들을 수행하여야 하는지를 표현 • 수행하여야 하는 기능들을 함수화 • 처리 순서를 고려하여 작성해둔 함수 호출 • 객체지향 • 기능이 아닌 데이터에 초점 • 객체라는 단위로 모든 처리 표현 • 모든 사물을 속성(property)과 기능(method)을 가진 객체로 간주 한림대학교 웹데이터베이스 - 이윤환
  • 3. 객체 지향 프로그래밍 클래스(Class) 키워드 • 메소드와 속성 정의. 사람 class Human { public $Name; 이름 public $Age; 나이 public $Height; 속성 public $Weight; 키 public function Eat ( $foods ) { 체중 echo “우걱우걱~ 맛있는”. $foods . “<BR>”; 먹는다 } 기능 걷는다 public function Walk ( $destination ) { echo $destination . “까지 걸어요.<BR>”; 말한다 } public function Talk ( $words ) { echo $words . “<BR>”; } } 한림대학교 웹데이터베이스 - 이윤환
  • 4. 객체 지향 프로그래밍 - 속성 속성 • 데이터 • 표현하고자 하는 대상이 가질 수 있는 속성 값 • (class 문 내에서)속성의 이름 지정 • 속성 값은 메소드에 의해 변경 • 초기값은 생성자라는 특수한 메소드에 의해 지정 • 제한자에 의해 접근 레벨을 달리할 수 있음 • 객체지향 프로그래밍에서는 직접 속성값을 변경하 지 않고 메소드만 외부에 노출 • 노출된 메소드에 의해 값 변경 • 상속 등에서 접근 제한자를 통해 변경 가능한 범위 지정 한림대학교 웹데이터베이스 - 이윤환
  • 5. 객체 지향 프로그래밍 - 메소드 생성자(Constructor) • class 문 내에서 사용 • 객체 초기화 • 일반적으로 클래스의 이름과 동일한 메소드 • PHP5에서는 __construct()라는 이름의 메소드 • 반드시 필요한 것이 아니므로 생략 가능 function __construct($hname) { • $this : 현재의 클래스를 가리키는 변수 $this->Name = $hname; • 이를 이용하여 클래스 내의 $this->Age = 1; 멤버 변수나 함수에 접근 가능. } • -> : 속성과 메소드명을 다룸 • 변수의 경우 변수 앞의 “$” 기호를 제외해야 함. 한림대학교 웹데이터베이스 - 이윤환
  • 6. 객체 지향 프로그래밍 - 메소드 소멸자(destructor) • 객체 소멸시 해야 하는 일 정의. • __destruct()라는 이름 • 파라미터를 가지지 못함. function __destruct() { $this->Talk( “창문을 닫아 주오!”); } 한림대학교 웹데이터베이스 - 이윤환
  • 7. 객체 지향 프로그래밍 – 객체 사용 인스턴스(Instance) 생성하기 • 클래스를 통해 사용할 객체 생성 • new 키워드 사용 • 전달인자는 생성자의 전달인자 <?php $charles = new Human(‘철수’); $younghee = new Human(‘영희’, 1, 50, 3.5); $charles = NULL; //철수 객체 제거 $younghee = NULL; //영희 객체 제거 ?> 한림대학교 웹데이터베이스 - 이윤환
  • 8. 객체 지향 프로그래밍 – 객체 사용 객체의 속성과 기능 사용하기 • “->” 사용 • 여기서 사용된 속성과 메소드는 public <?php $charles = new Human(‘철수’, 5); //5살짜리 철수를 생성합니다. $charles->Talk($charles->Age); //철수는 몇 살? $charles->Eat(“dinner”); //철수야! 밥 먹자~ //밥을 먹고 난 후 철수의 키와 몸무게가 늘었다. $charles->Height = 110; // 110 cm $charles->Weight = 22; // 22 Kg ?> 한림대학교 웹데이터베이스 - 이윤환
  • 9. 객체 지향 프로그래밍 – 상속 기존의 클래스의 속성과 기능을 상속받아 새로운 클래스 정의. • 최상위 클래스는 가장 일반적인 요소의 추상화 • 상속의 과정은 세분화의 과정 • extends 키워드 사용 <?php class Baby Extends Human { // 인간 클래스 상속 function 모유먹기 () { echo “냠냠~”; } function 천사와대화 () { echo “옹알~ 옹알~”; } } $재민 = new Baby(‘재민’); //아기 클래스를 이용해 재민이 객체 생성 $재민->천사와대화(); // 옹알~ 옹알~ ?> 한림대학교 웹데이터베이스 - 이윤환
  • 10. 객체 지향 프로그래밍 – 접근제한자 클래스 내부 접근을 위한 세 가지 키워드. • 클래스 설계 시 자신이 설계한 클래스를 보다 안 전하게 사용하기 위해 외부로 공개된 함수와 변 수로만 클래스를 접근하여 사용 제한자 설 명 public 외부에서 접근 가능 protected 상속 계통에서만 접근 가능 private 클래스 내부에서만 접근 가능 한림대학교 웹데이터베이스 - 이윤환
  • 12. 쿠키(COOKIE) 필요한 정보를 클라이언트 측에 보관하는 방법 • 쿠키는 웹 페이지로의 연속되는 방문 사이에 또 는 웹 사이트 내에서 다른 페이지들간의 방문 사 이에 상태(state)를 유지하는 문제를 해결하기 위 해 개발되었다. • 쿠키는 웹 서버들이 클라이언트의 하드 드라이 브 상에 데이터를 저장하고 검색한다. • “name = value” 형태의 간단한 텍스트 문자열이 며 클라이언트쪽에 지속적으로 저장된다. 한림대학교 웹데이터베이스 - 이윤환
  • 13. 쿠키(COOKIE) PHP에서 쿠키 다루기 bool setcookie (쿠키이름, 쿠키값, 만료시간, 경로, 도메인, 보안); [표6-1] setcookie 함수의 인자 한림대학교 웹데이터베이스 - 이윤환
  • 14. 쿠키(COOKIE) Cookie 사용하기 • 해당 쿠키명이 키인 $_COOKIE 연관배열 • Example : cookie.php vs. non-cookie.php Cookie 삭제하기 • setcookie(“삭제할 Cookie 변수명”) • setcookie(“삭제할 Cookie 변수명”, “값”, time()-3600) • cookie 변수를 과거로 보낸다. 현재에는 유효하지 않다. 함정 • setcookie를 사용하여 Cookie를 생성하기 전에 어떠한 데이터 도 Client에 보내지면 안된다. 한림대학교 웹데이터베이스 - 이윤환
  • 15. 세션(SESSION) 세션은 쿠키와 유사하나 웹 서버에 저장됨. • 쿠키는 사용자의 컴퓨터에 저장되므로 사용자가 홈페이 지에 들어오는 것은 알 수 있으나 로그아웃 하지 않고 나 갈 경우 웹 서버에서 알 수 없음. • 세션은 서버 측에 존재하므로 웹 서버가 주기적으로 세 션의 상태를 확인 가능. • 특정 시간 동안 웹 사이트 내에서 어떠한 이동도 발생하지 않을 경우 사용자가 나간 것으로 간주하고 세션 삭제 가능. [그림6-17] 세션의 저장 한림대학교 웹데이터베이스 - 이윤환
  • 16. 세션(SESSION) 세션의 제거 • 서버의 하드디스크 용량의 문제 및 세션의 관리를 위해 제거 • 주기적으로 관리하여 필요 없다고 느끼는 세션을 지움. • 기본적으로 24분을 기준으로 하여 세션 삭제 보안 • 세션은 서버 측에 저장되므로 세션 값을 사용자가 변조할 수 없음. • 무작위의 숫자로 이루어진 세션 ID를 사용자에게 발급, 서버 측에 기록함. • 웹 서버는 사용자의 세션 ID를 확인하여 사용자의 상태 유지. • 그러나 주기적으로 상태를 확인하고, 서버 측에 정보가 저장되므로 웹 서버에 부담을 줌 한림대학교 웹데이터베이스 - 이윤환
  • 17. 세션(SESSION) 세션 시작하기 • PHP에서 사용하기 위해 세션을 시작해야 함. • session_start() • 쿠키와 마찬가지로 어떤 정보도 클라이언트에 전달되기 전에 사용 • 세션을 시작하면 사용자에게 세션 ID가 발급됨. • PHPSESSID라는 이름으로 쿠키로 기록 1 <?php 2 session_start(); 3 ?> 한림대학교 웹데이터베이스 - 이윤환
  • 18. 세션(SESSION) 세션 변수 등록하기 • PHP 4.1 버전 이전에는 세션에 사용되는 변수를 별도로 등록. • 최신 버전의 PHP에서는 세션 변수를 사용. • $_SESSION 연관배열을 사용하여 세션 변수를 등록하고 값 저장. • [예제 6-7] 세션 변수 등록. 1 <?php 2 session_start(); 3 $_SESSION['message'] = 'Welcome to PHP world!<BR>'; 4 5 ?> 6 <a href="read_session.php">다음 페이지</a> 한림대학교 웹데이터베이스 - 이윤환
  • 19. 세션(SESSION) 세션 변수 사용하기 • $_SESSION 배열을 사용하여 세션 변수를 사용. • session_id() 함수 : 현재 사용자의 세션 ID //read_session.php 1 <?php 2 session_start(); 3 4 echo $_SESSION['message']; 5 echo "<P>"; 6 echo "PHPSESSID=" . session_id(); 7 ?> 한림대학교 웹데이터베이스 - 이윤환