2012-04-10 2 views
0

내 Perl 웹 응용 프로그램에서 세션 관리를 위해 CGI::Session을 사용하고 있습니다. file 세션 드라이버를 사용하여 세션을 만들 수 있지만 기존 세션을 가져올 수 없어 세션의 저장된 매개 변수에 액세스 할 수 없습니다.Perl 세션 관리

내가 기존의 세션을 얻기 위해 노력하고 있지만 새로운 및 쿼리 문자열 $CGISESSID을 만드는 것 모두 동일하지만 $session 여기에 나는 내가 세션에서 저장된 매개 변수를 얻을 수 없습니다 나는 완전히 새로운 하나 달랐다 얻고있다. 이 문제를 해결하는 데 도움을주십시오.

감사합니다,

+3

코드를 알려주십시오. – Borodin

+0

첫 번째 실수는 일반적인 경우입니다. 클라이언트/사용자에게 1) 적절한 시간에 세션 쿠키를 보내지 않고 있습니다. 2) 전혀 없습니다. Borodin이 말했듯이, 당신의 코드를 보지 않고는 누구도 당신을 도울 수있는 사람이별로 없습니다. – Ashley

답변

0

크리슈나 당신은 HTML 콘텐츠를 인쇄하기 전에> 헤더() 를 인쇄 $의 세션 -을하고 있습니까?

3

각 요청마다 새로운 세션을 얻는 경우 다른 사람이 지적했듯이 쿠키에 세션 ID를 보내지 않습니다. ,

print $q->header(-cookie => $session->cookie); 

것은 당신이 당신의 응용 프로그램 프레임 워크에 대한 CGI :: 응용 프로그램을 사용하는 경우 경우() ((설정 내에서이 작업을 수행) 또는 cgiapp_init : 당신이 당신의 HTTP 헤더를 처리하기 위해 CGI.pm를 사용하는 경우,이 작업을 수행

print $session->header() 

CGI :: 세션의 유틸리티를 사용하여 (: IT)

$self->header_add(-cookie => $session->cookie); 

또는, 당신은 CGI를 사용할 수 있습니다 :: 세션 자신의 헤더(), 기본적으로 CGI :: 헤더 방법 '사용하는 쿠키 및/또는 헤더와 같은)가 권장됩니다 쿠키에 대한 만료 설정을 따르기 때문에