세션아이디(PHPSESSID) 문제 해결.. > 자유게시판

자유게시판

세션아이디(PHPSESSID) 문제 해결.. 정보

기타 세션아이디(PHPSESSID) 문제 해결..

본문



오늘 하루 세션아이디 문제 해결했던 과정을 정리해봤습니다.
재미있는 내용은 아니지만 흔적을 남길 필요가 있을 거 같아 적어 봅니다.

웹호스팅을 받고 있는데 홈페이지 접속시 주소표시줄에 세션아이디(보통 PHPSESSID)가 표시 됩니다.
항상 붙어 있는것이 아니라 처음 접속 -> 링크 클릭 이렇게 두단계에서만  표시가 됩니다..
문제 해결을 위해 웬 종일 여기저기 뒤적거리면서 이것 저것 해봤습니다.
phpschool, sir, 검색사이트, php메뉴얼를 돌아다니며 PHPSESSID로 검색해서 찾아낸 방법들이 아래입니다.

1)
ini_set('session.use_trans_sid', 0);
session_start();

2)
.htaccess 에
php_value session.use_trans_sid 0
혹은 php_flag session.use_trans_sid 0
혹은

php_flag session.use_trans_sid off


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

호스팅업체의 세팅이 1로 돼 있어서 바꿔야 되겠기에 1번 방법을 봤더니 이미 그누보드에 적용이 돼 있더군요.
메뉴얼에는 string ini_set (string, string) 으로 돼 있어서 혹시나 하는 마음에 '를 " 로 바꿔보고 0 을 '," 로 씌워도 보고, 0을 FALSE로도 바꿔보고..
여러가지 방법을 써봐도 ini_get('session.use_trans_sid') 값은 1로 고정됩니다..
메뉴얼에는 어디서든 변경가능 하다는데 저 값을 변경시키지 못하게 하는 방법이 있는것인지..
머리 아파오죠.. 테스트 해본 다른 값들은 변경가능한데 이 값만 안되니까요..
나중에 보니 php의 버그였다는 글이 있더군요.. 호스팅 업체 php 버전이 4.3.10 인데 아직 해결이 안된 버전일까요..

2번 방법은 .htaccess 화일을 만들어 저 내용들을 써넣기만 하면 서버 오류 메시지만 뜨네요..
이 방법을 사용하려면 AllowOverride 설정이 맞아야 한다네요.
호스팅업체의 홈 디렉토리 세팅 내용이 아래와 같은데 PHP세팅과 관련된부분이 어디인지 모르겠더군요..

    AllowOverride FileInfo AuthConfig Limit
    Options Includes MultiViews SymLinksIfOwnerMatch IncludesNoExec
   
        Order allow,deny
        Allow from all
   
   
        Order deny,allow
        Deny from all
   


3번 방법은  효과가 없었습니다.
세션아이디가 쿠키에 저장되는 것이 초기 접속후 리플레쉬를 하거나 페이지 이동시라는데 이미 초기 접속상태에서 표시가 돼버리니까요..

결국 찾아낸 방법은

ini_set("url_rewriter.tags","");

였습니다.. 해결책을 찾아내니 너무 기쁩니다.. 한편으론 허탈하기도 하구요..
다시 호스팅 업체 정보를 살펴보니
url_rewriter.tags 에 a=href,area=href,frame=src,input=src,form=fakeentry 값이 할당돼 있더군요..
그래서 링크마다  세션 아이디가 따라다니고 있었던 거구요..
어떻게 생각하면 이상하기도 합니다. 저렇게 링크마다 따라 다니게 해놨으니 지속적으로 세션아이디가 붙어야 하는데 처음에만 나오니까요..
아무튼 session.use_trans_id 에만 매달렸는데 엉뚱한 곳에서 해결이 되버렸습니다..

혹시라도 저와 같은 상황에서 고민하셨던 분은 common.php 의 175행 정도에
ini_set('session.use_trans_sid', 0);    // PHPSESSID를 자동으로 넘기지 않음
바로 밑에  ini_set("url_rewriter.tags",""); 를 적어주세요..

저 한줄을 찾기 위해 그렇게 고생한걸 생각하면 역시 "인내는 쓰고 열매는 달다." 네요..11.gif
추천
0
  • 복사

댓글 4개

고생하셨습니다.
멋진 내용입니다.

아무래도 팁텍쪽으로 옮기셔야
오랫동안 사랑받는(?!) 팁이 될 것 같습니다.
앗.. 댓글 감사합니다..
글이 길어서인지 댓글이 하나도 없이 뻘줌했는데..^^;

다들 문제없이 사용하시는 거 같아 팁텍에 올릴 자격은 없는거 같아요..
다들 문제없이 사용하는것처럼 보이나,
개중에는 문제를 안고 있지만 해결을 못하거나,
차마 손을 대지도 못하고 있는 유저들도 상당수 있겠지요.

최근 제 경우는 fopen이 막혀 있어서,
매력덩어리 RSSReader(스킨)를 설치하지 못하고 있습니다.
소켓으로 끌어내야 하는데,
g4에 적용될 수 있도록 수정해야 하는
바로 그 부분이 한계네요.
(대부분의 사용자들은 fopen이 풀려있을 듯 합니다.)

누군가는 꼭 필요하지만,
그 가닥을 파악하지 못하거나,
남들이 구현(문제해결)해 주기를 마냥 기다리는
유저들도 상당수 있을거라 여겨집니다.
© SIRSOFT
현재 페이지 제일 처음으로