[PHP] 쿠키 / 세션
쿠키 / 세션
- 사용자의 브라우저와 서버간의 가상의 논리적인 연결
http프로토콜
- 상태(연결의 지속성)가 없는 프로토콜
- 브라우저와 서버간의 상태에 대한 보존 없이 매 순간 새로운 연결을 하고, 요청에 대한 응답을 서버가 전송하고 나면 연결이 끊어짐
세션 사용 시작
session_start();
$_SESSION => 세션을 관리하는 php의 슈퍼글로벌 변수
$_SESSION['city'] => "부산";
세션 삭제하기
1) unset($_SSESION['city']); - city라는 이름의 세션 해지
2) session_unset(); - 모든 세션 변수의 등록 해지
3) session_destroy(); - 세션 아이디 삭제
쿠키 생성하기
setcookie(키, 값, 시간)
ex> setcookie("cookie1", "abc", time()+3600)
쿠키 삭제하기
1) unset($_COOKIE['cookie1'])
2) setcookie("cookie1",'',time()-3600);
실습 - 회원가입
1) members 테이블 생성
create table members (
no int primary key auto_increment,
id varchar(16) not null,
pw varchar(20) not null,
date datetime not null,
name varchar(20) not null
);
2) member 폴더
-> join.php 회원가입
-> join_process.php 회원가입 처리
-> login.php 로그인
-> login_process.php 로그인 처리
ex11_session.php
<?php
session_start();
$_SESSION['city'] = "부산";
$_SESSION['session1'] = "hihi";
echo $_SESSION['city'];
echo $_SESSION['session1'];
?>
ex12_sessionPrint.php
<?php
session_start();
echo "<h2>세션값은".$_SESSION['city']."입니다.</h2>";
?>
<a href="ex13_session_unset.php">세션삭제</a>
ex13_session_unset.php
<?php
session_start();
// session_unset();
unset($_SESSION['city']);
// unset($_SESSION('session1'));
echo $_SESSION['city'];
echo $_SESSION['session1'];
?>
ex14_cookie.php
<?php
setcookie('cookie1', 'abc');
setcookie('cookie2','123456',time()+100);
if(isset($_COOKIE['cookie1'])) {
echo "쿠키 1은".$_COOKIE['cookie1'];
}
if(isset($_COOKIE['cookie2'])) {
echo "쿠키 2는".$_COOKIE['cookie2'];
}
?>
<a href="ex15_cookieunset.php">쿠키 삭제하기</a>
ex15_cookieunset.php
<?php
setcookie('cookie1', '', time() - 3600);
if(isset($_COOKIE['cookie1'])) {
echo "쿠키 1은".$_COOKIE['cookie1'];
} else {
echo "쿠키1 은 사라짐";
}
if(isset($_COOKIE['cookie2'])) {
echo "쿠키 2는".$_COOKIE['cookie2'];
} else {
echo "쿠키 2는 사라짐";
}
?>