사이트 내 전체검색
PHP
[php] 세션(session) 이 사라지지 않는 경우 해결법
로빈아빠
https://cmd.kr/php/457 URL이 복사되었습니다.

본문

세션(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의 김정길님의 글

댓글목록

등록된 댓글이 없습니다.

PHP
871 (10/18P)

Search

Copyright © Cmd 명령어 18.117.168.71