세션 (Session) Yang-Sae Moon Department of Computer Science

Slides:



Advertisements
Similar presentations
Copyright © 2015 Pearson Education, Inc. 6 장 : 프로그래밍 언어.
Advertisements

제 1장 자바스크립트란 ?.
10장 회원 가입과 로그인 한빛미디어(주).
웹 프로그래밍 HTML, 자바스크립트, ASP를 중심으로
C++ Espresso 제3장 배열과 포인터.
C++ Espresso 제3장 배열과 포인터.
PHP programming 2000년 11월 13일 데이터베이스 연구실 김호숙.
IT Application Development Dept. Financial Team May 24, 2005
HTML과 CGI 프로그래밍 PHP 웹 프로그래밍 (PHP Web Programming) 문양세
예방접종 정보 SITE.
MySQL 연동 PHP 프로그래밍 기초 순천향대학교 정보기술공학부 이상정.
12장. JSP에서 자바빈 활용 제12장.
7. JavaBeans 프로그래밍 JavaBeans JavaBeans 만들기 빈을 이용한 회원가입 양식 작성하기 빈 작성
8장 쿠키와 세션.
Project No 김현수 최종 작성일 :
9 표준 액션.
9장. 요청 흐름제어와 모듈화 #1: <jsp:forward> 액션태그 사용
10장. 에러 처리 제10장.
JSP 내장 객체 개요 내장 객체 (참조 변수 이름) 자바 클래스 주요 역할
5장. 리스트 리스트 학습목표 목록이나 도표처럼 여러 데이터를 관리할 수 있는 자료형을 추상화
Web Server와 DB 연동.
2주 실습강의 Java의 기본문법(1) 인공지능연구실.
이 름: 정홍도 (과장) 팀 명: 개발사업팀 일 자:
2. PHP 프로그래밍 웹 브라우저로 데이터 전송 주석 작성하기 변수/상수 문자열/숫자형 HTML 폼 만들기
중 간 고 사 (웹프로그래밍)
6장 히스토그램 처리 차 례 히스토그램의 개요 히스토그램의 용도 영상 이치화 히스토그램 평활화 히스토그램 스트레칭
학습목표 학습목차 Table 태그를 이용하여 표 만들기를 이해할 수 있습니다.
IS lab. 김건영 Awk, Posting list IS lab. 김건영
웹서버와 설치에 필요한 것 WWW ( world wide web ) TCP/IP 프로토콜을 이용하는 클라이언트/서버 환경
5. JSP의 내장객체1.
[INA240] Web Programming Homework #3 [INA240] Web Programming
6부 WML/WML2.0 언어배우기 6-1 WML에 대해서 6-2 WML 기본 태그 6-3 글과 그림 삽입에 관련된 태그
16장 설문조사 한빛미디어(주).
4. JSP의 스크립트 요소 Script 요소의 이해 선언문(Declaration) Scirptlet 표현식 주석
8 데이터베이스 사용하기.
12 데이터베이스 사용하기.
Cookie 와 Session.
5장 이름, 바인딩, 영역(2) 순천향대학교 컴퓨터공학과 하상호.
PHP 웹 프로그래밍 (PHP Web Programming) 세션 (Session) 문양세 강원대학교 IT대학 컴퓨터과학전공.
HTML.
10장. 자바빈(JavaBean) 이 장에서 배울 내용 : 화면에 표시를 담당하는 JSP페이지와 실제프로그램을 처리하는 로직을 분리하는 것에 대해서 학습한다. 하나의 JSP페이지 안에 디자인부와 로직부가 혼재하게 되면 프로그램의 협업과 유지보수가 어렵다. 자바빈은 로직을.
이장에서 배울 내용 : 화면에 표시를 담당하는 JSP페이지와 실제프로그램을 처리하는 로직을 분리하는 것에 대해서 학습한다
JavaScript COOKIE Chapter 10 Part III
JavaScript 기초 Chapter 8 Part II
기초 프로그래밍 Yang-Sae Moon Department of Computer Science
CGI (Common Gateway Interface)
JSP Programming with a Workbook
상품등록 방식 비교 년 4월 23일 (주)에이치케이넷츠.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
표현언어와 커스텀태그 표현 언어의 개념을 이해한다. JSP1.2 커스텀 태그 개발 방법을 익힌다.
CGI (Common Gateway Interface)
(Web Programming & Practice)
08장 쿠키와 세션.
17장 웹 사이트 제작 완성 한빛미디어(주).
ASP 수행 화면(1).
웹 연동 기술 Yang-Sae Moon Department of Computer Science
LOGIN할 때 아이디, 비번 입력 여부 체크하기
(Web Programming & Practice)
과제 #5 MySQL 연동 php문서에서 SQL문의 삽입, 삭제, 수정, 검색을 수행한다. 주어진 form을 최대한 활용한다.
JSP 빈즈 1.JSP 빈즈? JSP와 연동을 위해 만들어진 컴포넌트 클래스를 말한다. JSP 빈즈는 컨테이너에 위치하며, 데이터 처리와 공용화된 기능을 제공하기 때문에 빈즈를 잘 활용하면 프로그램의 중복을 줄이고 좀더 원할한 유지보수가 가능한다. 물론 , 모든 JSP를.
(Web Programming & Practice)
HTML HTML 기본 구조와 태그 다양한 태그 다루기
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
웹 프로그래밍 기술 요약 Yang-Sae Moon Department of Computer Science
Data Base Web Programming
Lecture 05 문자열, 배열, 디버깅 Kwang-Man Ko
房思琪的初恋乐园 ‘팡쓰치’로 보는 문학의 힘 정은비.
大鵬(대붕) 김 시 습 국어국문학과 이준석.
PHP 기초문법 PHP를 공부하는데 있어 가장 기초가 되는 PHP기초문법에 대해서 배워 봅니다.
Python 기본.
Presentation transcript:

세션 (Session) Yang-Sae Moon Department of Computer Science Kangwon National University, Korea

세션 변수 (Session Variable) (1/2) 쇼핑몰 장바구니 장바구니에서는 사용자가 페이지를 이동하더라도 장바구니의 구매 물품 리스트의 내용을 유지하고 있어야 함 PHP에서 사용하는 일반적인 변수는 스크립트의 수행이 끝나면 모두 없어지기 때문에 페이지 이동 시 변수의 값을 유지할 수 없음 이러한 문제점을 해결하기 위해서 PHP에서는 세션(session)을 제공

세션 변수 (Session Variable) (2/2) 일반 변수와 세션 변수 일반 변수 지역 변수(local variable): 변수의 범위는 한 함수의 내부로 제한 (함수 내부) 전역 변수(global variable): 변수가 속하는 스크립트가 실행되는 동안 값을 유지 (스크립트 내부) 세션 변수 전역변수보다 더 큰 범위 동안 값을 유지 (문서 간에도 범위 유지) 명시적으로 변수를 없애지 않는 한 그 값을 유지

전역 변수 vs. 지역 변수 (1/2) 프로그램 예제 (g_l_var1.php) 프로그램 실행 결과 세션 (Session) 프로그램 예제 (g_l_var1.php) <?PHP function A () { global $n; $n = “A”; $m = “A”; print “$n, $m<br>”; } $n = “M”; $m = “M”; A (); ?> 프로그램 실행 결과 M, M A, A A, M 위 프로그램에서 함수 A() 안에서 $n은 전역 변수로, $m은 지역 변수로 사용 따라서, 함수 A()를 호출하고 나서 $n의 값은 변했지만 $m은 변하지 않음

전역 변수 vs. 지역 변수 (2/2) 프로그램 예제 (g_l_var2.php) 프로그램 실행 결과 세션 (Session) 프로그램 예제 (g_l_var2.php) <?PHP function A() { global $n; print $n.”<br>”; } function B() $n = “B”; // local variable A(); $n = “M”; // global variable B(); ?> 프로그램 실행 결과 M 함수 B()에서 $n은 지역 변수이므로, 적용 결과($n = “B”)가 스크립트의 전역 변수인 $n에 영향을 주지 않음에 유의

세션 변수의 예제 (1/2) page1.php page2.php 세션 (Session) page1.php page2.php 상기 프로그램(page1.php  page2.php)을 실행하면 아무것도 출력되지 않음 전역 변수는 한 스크립트가 끝나면 그 변수가 소멸되기 때문 따라서 세션 변수를 사용하여 변수 값을 유지하는 방법을 이용해야 함 <?PHP $G = “This is a Global variable”; ?> <a href=“./page2.php”>다음페이지</a> <?PHP print $G; ?>

세션 변수의 예제 (2/2) 세션을 이용한 예 (page_session1.php, page_session2.php) session_register(‘G’); $G = “This is a Global variable”; ?> <a href=“./page_session2.php”>다음페이지</a> <?PHP session_start (); print $G; ?>

세션 변수의 선언 (1/5) session_register() session_start() 세션 변수를 등록할 때 사용하는 함수임 name 은 세션 변수의 이름이 되며, 이 함수를 한번 사용하여 여러 개의 변수를 한꺼번에 등록시킬 수 있음 session_start() 세션 변수의 사용을 시작할 때 사용하는 함수임 세션이 시작되면, 세션이 정의된 모든 세션 변수는 전역 변수로 선언되어 짐 bool session_register (mixed name [, mixed ...]) bool session_start (void)

세션 변수의 선언 (2/5) session_id() session_save_path() session_id() 함수를 이용하여 현재 사용자의 세션 ID를 알 수 있음 session_save_path() 지정되어 있는 PATH로 이동하면 sess_ 로 시작하는 파일에 저장 string session_id ([string id]) string session_save_path ([string path])

세션 변수의 선언 (3/5) session_id() 예제 (session_id.php) <?PHP session_register (‘session_var’); $session_var = “This is a Session variable”; print “세션ID: “ . session_id (); ?>

세션 변수의 선언 (3/5) session_save_path() 예제 (session_save_path.php) print “세션의 저장 위치: “ . session_save_path (); ?> Let’s see C:/APM_Setup/phptemp

세션 변수의 선언 (4/5) 배열형 변수의 세션 등록 (arr_session.php, arr_session_view.php) session_register (‘fruit’); $fruit = array (“Apple”, “Banana”, “Pear”, “Orange”); ?> <a href=“./arr_session_view.php”>확인</a> <?PHP session_start (); foreach ($fruit as $fr) print “$fr<br>”; ?>

세션 변수의 선언 (5/5) 세션 (Session) 실행 결과: 배열형 변수의 세션 등록

세션의 조작 (1/3) session_unregister() session_unset() session_destroy() name: 등록을 취소하고자 하는 변수의 이름 등록이 성공적으로 취소되었을 때 TRUE를 리턴 session_unset() 등록된 변수들의 값을 초기화(initialization) session_destroy() 등록된 변수들을 파괴 (destruction) bool session_unregister (string name) void session_unset (void) bool session_destroy (void)

세션의 조작 (2/3) 세션 변수의 등록 취소 (session_reg_unreg1/2.php) session_register (‘var1’); session_register (‘var2’); $var1 = “Variable1”; $var2 = “Variable2”; session_unregister (‘var2’); ?> <a href=“./viewvar.php”>확인 페이지</a> session_unregister() 함수를 이용하여 $var2를 제거 <?PHP session_start (); print “$var1<br>”; print “$var2”; ?>

세션의 조작 (3/3) 세션 (Session) session_unset(), session_destroy()의 사용 예 (session_mani1/2/3.php) <?PHP session_register (‘apple’); $apple = 4; ?> <a href=“./session_mani2.php”>session_unset() 함수사용</a><br> <a href=“./session_mani3.php”>session_destroy() 함수사용</a> <?PHP session_start (); session_unset (); print $apple; ?> session_unset: 변수값 초기화 session_destroy: 세션 데이터 파괴 <?PHP session_start (); session_destroy (); print $apple; ?>

간단한 장바구니 구현 (1/7) session/products.inc <?PHP $fruit = array (“사과” => 10, “배” => 20, “복숭아” => 30, “수박” => 40, “감” => 50, “토마토” => 60, “바나나” => 70, “키위” => 80, “파인애플” => 90, “대추” => 100); ?>

간단한 장바구니 구현 (2/7) session/product_list.php <html> <body> <p><font size=“6”>제품 목록</font></p> <p><a href=“cart.php”>장바구니</a></p> <table width=“420” border=“1” cellpadding=“1”> <tr align=“center”> <td width=“200”>이름</td> <td width=“80”>가격</td> <td width=“140”>장바구니</td> </tr> <?PHP include (“./products.inc”); while (list ($name, $price) = each ($fruit)) { ?> <form name=“insert_form” method=“post” action=“./cart.php?code=insert&name=<?=$name?>”>

간단한 장바구니 구현 (3/7) session/product_list.php (계속) <tr> <td width=“200”><?=$name?></td> <td width=“80” align=“right”><?=$price?>원</td> <td width=“140” align=“center”>수량 <select name=“amount”> <option value=1>1</option><option value=2>2</option> <option value=3>3</option><option value=4>4</option> <option value=5>5</option> </select> <input type=“submit” name=“submit” value=“추가”> </td> </tr> </form> <?PHP } ?> </table> </body> </html>

간단한 장바구니 구현 (4/7) 세션 (Session) 출력 결과 (product_list.php)

간단한 장바구니 구현 (5/7) session/class.inc <?PHP class Cart { var $contents; function add ($name, $amount) $this->contents[$name] = $amount; } function delete ($name) if (count ($this->contents) > 0) { while (list ($key, $value) = each ($this->contents)) if ($key != $name) $new_cart[$key] = $value; $this->contents = $new_cart; function get_list() { return $this->contents; } function get_count() { return count ($this->contents); } ?>

간단한 장바구니 구현 (6/7) 세션 (Session) 세션 시작 및 장바구니 객체 생성, 메소드 이용 (session/cart.php)  자세한 Source는 교제 참조 <?PHP include (“./class.inc”); include (“./products.inc”); session_start (); if (!session_is_registered (‘cart’)) { $cart = new Cart; session_register (‘cart’); } if ($code == “insert”) $cart->add ($name, $amount); else if ($code == “delete”) $cart->delete ($name); ?>

간단한 장바구니 구현 (7/7) 세션 (Session) 현재 장바구니의 상황을 보여주는 부분 (session/cart.php)  자세한 Source는 교재 참조 <?PHP if ($cart->get_count ()) { $sum = 0; $contents = $cart->get_list (); while (list ($name, $value) = each ($contents)) $sum += $value[amount] * $fruit[$name]; } print “이름: “ . $name . “<br>”; print “수량: “ . $value[amount] . “<br>”; echo “총합: “ . $sum . “<br>”; ?>