本文へスキップ

세션(session) 이 사라지지 않는 경우 해결법

MintState 2008年10月31日 11:19 閲覧 14375

세션(session) 이 사라지지 않는 경우 해결법

PHP4에서 세션이 사라지지 않는 경우 해결법입니다.
세션이란 것이 세션 아이디를 클라이언트의 PC에 쿠키로 저장하게 되죠.
그런데 이부분에서 session_start()란 함수에서 문제가 있는지 브라우저가 종료되면 사라져야할 세션 아이디(쿠키)가 남습니다.
근데 우리가 직접 지정한 쿠키값은 이상없이 작동합니다.
이 점을 이용해서 해결책을 찾았습니다.
먼저 세션을 선언합니다.
그리고 세션 아이디를 다시 쿠키로 선언하는 거죠.

session_start(); 
$PHPSESSID=session_id(); 
setcookie("PHPSESSID", $PHPSESSID, 0,"/");

 

위에서 PHPSESSID는 서버마다 다를 수 있습니다. 자신의 서버에 세션 아이디가 어떤 이름으로 저장되는가를 알아내서 바꿔줘야 합니다.
위와 같이만 해서는 매번 세션아이디의 쿠키를 선언하게 됩니다.
아래와 같이 간단한 if문을 이용해서 한번만 선언하도록 바꾸면 더 좋겠습니다.

session_start(); 
if ($HTTP_COOKIE_VARS[SESSION_CHECK] == "") 
{ 
  setcookie("SESSION_CHECK", "Y", 0, "/"); 
  $PHPSESSID=session_id(); 
  setcookie("PHPSESSID", $PHPSESSID, 0,"/"); 
}

 

출처: http://www.phpschool.com Tip&Tech의 김정길님의 글

共有 X Facebook LINE QR コード

コメント 0 件

最初のコメントを書いてみましょう。