PHP 웹 프로그래밍 (PHP Web Programming) 세션 (Session) 문양세 강원대학교 IT대학 컴퓨터과학전공.

Slides:



Advertisements
Similar presentations
Python Essential 세미나 1 CGI 프로그램 작성법 발표자 : 박승기 ( 수 )
Advertisements

PHP 웹 프로그래밍 (PHP Web Programming) 웹 연동 기술 문양세 강원대학교 IT대학 컴퓨터과학전공.
PHP programming 2000년 11월 13일 데이터베이스 연구실 김호숙.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
10장 함수.
PHP 웹 프로그래밍 (PHP Web Programming) PHP 개요 문양세 강원대학교 IT대학 컴퓨터과학전공.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
Javascript Basic Sample Programs
6주차: Functions in C and Others
16장 설문조사 한빛미디어(주).
컴퓨터응용과학부 Java Enterprize(DB) 제 15 주
컴퓨터 프로그래밍 실습 #6 제 4 장 클래스 작성.
11장. 1차원 배열.
C#.
13. 연산자 오버로딩.
10강. JSP 본격적으로 살펴보기-II 스크립트릿, 선언, 표현식 지시자 주석 Lecturer Kim Myoung-Ho
Method & library.
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
HTML.
자바응용.
인터넷응용프로그래밍 JavaScript(Intro).
CHAP 13. 방명록 만들기 실습.
게임웹사이트운영 [10] 폼 작성.
9장 웹 사이트 초기 화면 제작 한빛미디어(주).
27장. 모듈화 프로그래밍.
3장 상수 변수 기본 자료형 키워드와 식별자 상수와 변수 기본 자료형 형변환 자료형의 재정의.
PHP 개요 및 설치 Yang-Sae Moon Department of Computer Science
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
폼 관련 태그 폼 양식 직접 만들어보기 회원가입 절차 4단계
프로그래밍 원리 Chapter 05 자바스크립트 기초 신한대학교 IT융합공학부 박 호 균.
8장 쿠키와 세션 한빛미디어(주).
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
2장. 변수와 타입.
웹디자인
08장 쿠키와 세션.
Lab 8 Guide: 멀티스레딩 예제 2 * Critical Section을 이용한 멀티스레딩 동기화 (교재 15장, 쪽)
ASP 수행 화면(1).
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
Fucntion 요약.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
PHP 웹 프로그래밍 (PHP Web Programming) 미리 정의된 함수 문양세 강원대학교 IT대학 컴퓨터과학전공.
세션 (Session) Yang-Sae Moon Department of Computer Science
시스템 인터페이스 Lab#5 쉡 실습.
(Web Programming & Practice)
7주차: Functions and Arrays
제 8장. 클래스의 활용 학기 프로그래밍언어및실습 (C++).
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
함수, 모듈.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
컴퓨터 프로그래밍 기초 - 9th : 배열 / 포인터 -
16장. 변수, 연산자, 사용자 정의 함수 변수 배열과 객체 연산자 함수.
9 브라우저 객체 모델.
Numerical Analysis Programming using NRs
Static과 const 선언 조 병 규 한 국 교 통 대 학 교 SQ Lab..
이산수학(Discrete Mathematics)  술어와 한정기호 (Predicates and Quantifiers)
JSP Programming with a Workbook
Data Base Web Programming
트위치 트게더 Twitogether 김준희.
1. 지역변수와 전역변수 2. auto, register 3. static,extern 4. 도움말 사용법
어서와 C언어는 처음이지 제21장.
7 생성자 함수.
6 객체.
20 XMLHttpRequest.
함수 정의, void 자료형 함수 원형선언 함수 호출 변수 영역 규칙 재귀 함수
Presentation transcript:

PHP 웹 프로그래밍 (PHP Web Programming) 세션 (Session) 문양세 강원대학교 IT대학 컴퓨터과학전공

세션 변수 (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. “php.ini” 파일에서 다음을 수정합니다. 세션 (Session) 1. “php.ini” 파일에서 다음을 수정합니다. 2. APM 설정에서 오른편과 같이 수정합니다. 3. 아파치를 재시작합니다.

세션 변수의 예제 (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/temp

세션 변수의 선언 (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  refresh 시켜본다.) 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  refresh 시켜본다.) <?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>”; ?>