PHP

44. PHP 세션(session) 기본 사용법

drizzle0925 2021. 10. 12. 14:20
728x90

세션은 서버에 저장되는 접속 클라이언트별 사용자의 정보다.

<?php
function redirect($url)
{
    header('Location: ' . $url);
    exit();
}

session_start();
$action = $_GET['action'];

if ($action == "set")
{
    $_SESSION['key'] = 'session_value';
    redirect("?action=get");

}
elseif ($action == "get")
{
    if (isset($_SESSION['key']))
    {
        echo $_SESSION['key'];
    }
    else
    {
        echo "NO SESSION";
    }
}
elseif ($action == "remove")
{
    if (isset($_SESSION['key']))
    {
        unset($_SESSION['key']);
    }
    redirect("?action=get");
}

위 코드를 session.php 파일에 저장하고 브라우저에서 결과를 확인한다.

 

 

1. localhost/session.php?action=get 으로 접속한 결과

NO SESSION

 

2. localhost/session.php?action=set으로 접속한 결과

$_SESSION['key']에 session_value라는 문자열 값을 대입후 localhost/session.php?action=get으로 리다이렉트함

session_value

 

3. localhost/session.php?action=remove로 접속한 결과

$_SESSION['key']에 들어있는 변수값을 삭제하고 localhost/session.php?action=get으로 리다이렉트함

NO SESSION

redirect 함수는 여러 군데서 쓰이기 때문에 함수로 선언했다.

function redirect($url){
    header('Location: ' . $url);
    exit();
}

php에서 세션을 사용하려면 반드시 session_start()를 사용하기 전에 써서 세션을 준비해야한다.

session_start();

세션은 $_SESSION 글로벌 전역 변수를 통해 사용할 수 있다. 세션에 값을 넣기 위해서는 $_SESSION[세션키] = 세션값 형태로 쓰면 된다.

$_SESSION['key'] = 'session_value';

세션에서 값을 가져오기 위해서는 $_SESSION[세션키] 형태로 가져오면 된다.

echo $_SESSION['key'];

세션에 특정 키나 값이 있는지 확인하기 위해서는 isset($_SESSION[세션키]) 형태로 쓰면 된다. isset은 변수가 존재하는지 확인하는 내장 함수이다.

isset($_SESSION['key']);

세션이 이미 시작했는지 확인하기 위해서는 isset($_SESSION)으로 확인할 수 있다. 세션이 시작되어야만 $_SESSION 변수가 생기기 떄문이다. 따라서 session_start() 함수를 쓸 때는 보통 아래와 같이 사용한다.

if(isset($_SESSION) == false)
{
	session_start();
}

세션에서 값을 삭제하기 위해서는 unsert($_SESSION[세션키])로 삭제하면 된다.

unset($_SESSION['key']);
728x90