Stack/PHP

[PHP] 쿠키 / 세션

7ingout 2022. 5. 30. 14:48

쿠키 / 세션

- 사용자의 브라우저와 서버간의 가상의 논리적인 연결

 

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는 사라짐";
    }
?>