8장 쿠키와 세션 한빛미디어(주)
학습 목표 쿠키의 개념에 대하여 이해한다 쿠키를 생성하고 삭제하는 방법을 익힌다 세션 개념을 이해하고 쿠기와의 차이점을 이해한다 세션의 초기화, 생성, 삭제하는 방법을 익힌다. 등록된 세션 변수의 사용법을 익힌다
주요 학습 내용 01. 쿠키 02. 세션
쿠키란? 01 로그인한 다음 사이트의 어떠한 페이지로 이동하여도 로그인 상태가 유지 쿠키 : 클라이언트 사용자가 웹 서버에 접속하여 로그인 하였을 때 클라이언트 컴퓨터에 저장되는 데이터 사이트의 어떠한 페이지에서도 로그인된 상태와 로그인된 아이디 등을 이용 가능 만약 쿠기라는 개념이 없다면 로그인 시 로그인 상태와 로그인 아이디를 DB에 써 넣어야 함
쿠키 생성 02 setcookie() 함수 bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, bool secure]]]]] ) 함수의 인자 설명 name 쿠기의 이름 value 쿠키의 값 expire 쿠키가 유효한 시간 path '/home/' 이라고 설정하면 ‘/home/' 디렉토리와 서브 디렉토리에서 쿠키를 사용 가능. domain 쿠키를 이용할 수 있는 도메인을 의미 secure TRUE 로 설정하면 접속에서만 쿠키가 설정
【예제 8-1】cookie1.php 02 쿠키 생성 예 01 <? 02 $cookie_r1 = setcookie("userid", "hkd", time()+8); 03 $cookie_r2 = setcookie("username", "홍길동", time()+8); 04 05 if ( $cookie_r1 and $cookie_r2) 06 echo "쿠키 생성이 완료 되었습니다(단, 생성된 쿠키는 8초간 지속됩니다)."; 07 ?>
【예제 8-2】cookie2.php 02 생성된 쿠키 사용 예 01 <? 02 echo "생성된 'userid' 쿠키 : ".$_COOKIE[userid]."<br>"; 03 echo "생성된 'username' 쿠키 : ".$_COOKIE[username]."<br>"; 04 ?>
【예제 8-3】cookie3.php 02 쿠키 삭제 예 01 <? 02 setcookie("userid"); // userid 쿠키 삭제 03 setcookie("username"); // username 쿠기 삭제 04 05 06 echo "생성된 'userid' 쿠키 : ".$_COOKIE[userid]."<br>"; 07 echo "생성된 'username' 쿠키 : ".$_COOKIE[username]."<br>"; 08 ?>
세션이란? 02 쿠기가 로그인 정보를 클라이언트 컴퓨터에 저장하는데 반하여 세션에서는 보안상 로그인 정보를 서버에 저장 PHP 4에서 추가 되었는데 웹 사이트에 연속적으로 접속할 때 이전의 접속 정보를 이용할 수 있는 방법을 제공 서버에서 세션 아이디(Session id)라고 부르는 유일한 아이디를 부여하여 서버의 특정 디렉토리에 저장 세션 아이디는 또한 클라이언트 컴퓨터에 저장되거나 URL를 통하여 클라이언트를 통하여 전달
【예제 8-4】session1.php 02 session_start( ) 함수 <? session_start(); bool session_start( ) <? session_start(); echo '세션이 시작되었습니다.<br><br>'; $_SESSION['color'] = 'blue'; $_SESSION['animal'] = 'dog'; $_SESSION['time'] = time(); echo "<a href='session2.php'>session2.php로 이동</a>"; ?>
【예제 8-5】session2.php 02 등록된 세션 사용 예 <? session_start(); echo '세션이 시작되었습니다.<br><br>'; echo $_SESSION['color'].'<br>'; echo $_SESSION['animal'].'<br>'; echo date('Y-m-d(H:i:s)', $_SESSION['time']); ?>
【예제 8-6】session3.php 02 세션 등록의 세가지 방법 <? // session_register()는 PHP 4와 PHP 5에서 사용 $var1 = "조관우"; session_register("var1"); // PHP 4.1.0 버전 이후에는 일반적으로 $_SESSION 이 더 많이 사용 $_SESSION["var2"] = "동방신기"; // PHP 4.1.0 이전 버전에서는 $HTTP_SESSION_VARS 를 사용 $HTTP_SESSION_VARS["var3"] = "조용필"; echo "<a href='session4.php'> session4.php로 이동 </a>"; ?>
【예제 8-7】session4.php 02 등록된 세션 출력 예 <? session_start(); echo '세션이 시작되었습니다.<br><br>'; echo $_SESSION['var1'].'<br>'; echo $_SESSION['var2'].'<br>'; echo $_SESSION['var3'].'<br>'; echo '<br>'; echo $var1.'<br>'; echo $var2.'<br>'; echo $var3.'<br>'; ?>
【예제 8-8】session5.php 02 세션 삭제 <? session_start(); unset($var1); // unset($_SESSION[var1]), session_unregister('var1') unset($var2); // unset($_SESSION[var2]), session_unregister('var2') unset($var3); // unset($_SESSION[var3]), session_unregister('var3') if ($var1 and $var2 and $var3) { echo $var1.'<br>'; echo $var2.'<br>'; echo $var3.'<br>'; } else echo "세션 변수가 모두 삭제 되었습니다."; ?>