header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
php 소스 제일 상단에 위 소스를 삽입한다.
header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
php 소스 제일 상단에 위 소스를 삽입한다.
php 세션을 생성한 후
[파일 : test1.php]
session_start(); <- 소스 맨 위에 위치
$_SESSION['id'] = 'session id';
페이지 이동을 해서 확인을 해 보면
[파일 : test2.php]
session_start(); <- 소스 맨 위에 위치
echo "<br />session['uid']=" . $_SESSION['id'];
아무런 값이 출력되지 않는 경우가 있다.
결과 : session['uid']=
[확인1] 소스 맨 위에 session_start(); 사용했는지 확인한다.
[확인2] session 디렉토리 권한을 확인한다.
세션 디렉토리 위치는 php.ini 설정 파일에서 확인할 수 있다.
예>session.save_path = '/var/lib/php/session"
/var/lib/php/session 디렉토리 권한이 777 또는 707로 되어 있는지 확인한다.
<?
// 테스트용 데이터 생성
$_POST['1']="가";
$_POST['2']="나";
$_POST['3']="다";
$_POST['4']="마";
$_GET['1']="가";
$_GET['2']="나";
$_GET['3']="다";
$_GET['4']="마";
$_SESSION['1']="가";
$_SESSION['2']="나";
$_SESSION['3']="다";
$_SESSION['4']="마";
$ary = array("1","2","3");
?>
<?
# POST 값을 모두 출력하기
// foreach()을 이용하는 방법
foreach($_POST as $key => $value)
{
echo "$key ==> $value <br>";
}
echo "<br><br>";
// var_dump()을 이용하는 방법
var_dump($_POST);
echo "<br><br>";
// print_r()을 이용하는 방법
print_r($_POST);
?>
<?
# GET 값을 모두 출력하기
// foreach()을 이용하는 방법
foreach($_GET as $key => $value)
{
echo "$key ==> $value <br>";
}
echo "<br><br>";
// var_dump()을 이용하는 방법
var_dump($_GET);
echo "<br><br>";
// print_r()을 이용하는 방법
print_r($_GET);
?>
<?
# SESSION 값을 모두 출력하기
// foreach()을 이용하는 방법
foreach($_SESSION as $key => $value)
{
echo "$key ==> $value <br>";
}
?>
<?
# 배열 값을 모두 출력하기
// foreach()을 이용하는 방법
foreach($ary as $key => $value)
{
echo "$key ==> $value <br>";
}
echo "<br><br>";
// var_dump()을 이용하는 방법
var_dump($ary);
echo "<br><br>";
// print_r()을 이용하는 방법
print_r($ary);
?>
[php-tip]PHP 세션 변수가 사라진다
<?
header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
?>
php 소스 제일 상단에 위 소스를 삽입한다.
예제출처 (http://www.thescripts.com/forum/thread512527.html)
A라는 도메인에서 iframe을 이용해서 B도메인에 있는 페이지를 불러왔다.
불려지는 B도메인의 웹페이지는 session변수를 생성하는데
iframe내에서 다른 B도메인내의 웹페이지로 이동을 하면 세션변수가 사라지는 현상이 발생한다.
Session.sessionID 를 이용해서 확인해 보면 계속해서 새로운 sessionID가 생성 됨을 확인할 수 있었다.
한마디로 세션이 저장이 되지않고 계속해서 세션쿠키가 새로 발급되는 현상으로 iframe뿐만 아니라 frame에서도 마찬가지였다.
또한, 이 문제는 FF에서는 정상적으로 세션변수가 유지되는 반면에 IE6에서는 세션변수가 사라졌다.
해결방법 (http://classicasp.aspfaq.com/general/why-won-t-my-session-variables-stick.html)
위의 링크를 따라가면 더더욱 많은 세션변수가 사라지는 현상과 그 해결방법에 대해나와있으니
참고하길 바라며 내가 겪은 세션변수 사라지는 현상의 해결방법은 다음과 같았다.
Internet Explorer 6에서 FRAMESET을 사용하면 세션 변수가 손실된다
MSDN기술문서 KB #323752
(한글로 번역되어있으니 기술 문서를 따라가면 원인과 해결방법에 대해 쉽게 알 수 있다.)
쿠키발급에 관한 정책문제이며
response.addHeader "P3P","CP=""IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"""
또는
header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
위의 헤더를 추가해주면 간단하게 해결이 된다.