간략하게 보자면 session_start(); 로 시작해서 session_destroy(); 로 끝나는 것 같다.
한 PHP 페이지 안에 꼭 session_destroy();가 들어갈 필요는 없는 것 같다.
세션이 닫히는것과 없어지는 것에 대한 궁금증 생겨서 이런저런 실험을 해보았다.

cat ./set1.php
<?
session_id('chat');
session_start();
$_SESSION['test'] = "HEHEHE THIS IS TEST!";
print_r($_SESSION['test']);
var_dump($_SESSION);
//echo($_SESSION['test']);
echo("<br>set1 : ". $_SESSION['test']."<br>");
//session_destroy();
?>

cat ./set6.php
<?
require('set1.php');
$_SESSION = array();
echo("<br>set6 : ".  $_SESSION['test'] . "<br>")
?>

cat ./set7.php
<?
require('set6.php');
var_dump($_SESSION['test']);
echo("<br>set7 : " . $_SESSION['test'] ."<br>");
?>

위 상태에서 set7.php 사이트에 들어가면(물론 set1.php, set6.php, set7.php는 같은 폴더안에 있다)

HEHEHE THIS IS TEST!array(1) { ["test"]=> string(20) "HEHEHE THIS IS TEST!" }
set1 : HEHEHE THIS IS TEST!

Notice: Undefined index: test in /opt/lampp/htdocs/set6.php on line 4

set6 :

Notice: Undefined index: test in /opt/lampp/htdocs/set7.php on line 3
NULL
Notice: Undefined index: test in /opt/lampp/htdocs/set7.php on line 4

set7 :

라고 나온다.
즉 set1부분에서는 세션이 시작되고 test라는 이름의 세션을 추가한뒤 set6.php부분에서는 세션변수에 대해 배열 초기화가 일어나 test라는 이름의 세션이 사라져서 아무것도 없게 되는 것 같다.

그리고 session_id 라는 놈을 이용해 세션을 공유할수도 있는 것 같다. 세션을 저장하는 위치도 지정할수 있는 함수가 있었지만 직접 실험해보지는 않았다.

세션 아직은 많이 어렵다 ㅠㅠ

설정

트랙백

댓글