44. PHP 세션(session) 기본 사용법
세션은 서버에 저장되는 접속 클라이언트별 사용자의 정보다.
<?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']);