본문 바로가기
예제코드
2012.03.07 21:16

How to keep session in Perl CGI

조회 수 7877 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

http://www.sitepoint.com/forums/showthread.php?179887-Perl-Session-HOW!!!


Page1에서 생성된 SESSION ID는 Cookie에 저장되고, Page2 액세스시 해당 SESSION ID가 있을 경우 그것을 사용하고 없으면 새로 생성.


Page 1 Code

Code:
use strict;
use CGI::Session;
use CGI;
use DBI;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = new CGI;
$CGI::DISABLE_UPLOADS = 1;          # Disable uploads
$CGI::POST_MAX        = 512 * 1024; # limit posts to 512K max


#create a new session
my $session = new CGI::Session(undef, undef, {Directory=>'c:/temp/session/'});


#set session to expire in 1 hour
$session->expire("+1h");
	
#store something
$session->param("days","Friday");
		
#write to disk
$session->flush();


#create the cookie with a 1hour limit.. 
my $cookie = $cgi->cookie(-name=>"CGISESSID",
		                           -value=>$sid,
		                           -expires=>"+1h",
		                           -path=>"/");
		
#set the cookie..
print $cgi->header(-cookie => $cookie );


Page 2 code

Code:
use strict;
use CGI::Session;
use CGI;
use DBI;
use CGI::Carp qw(fatalsToBrowser);

#create a new CGI object.
my $cgi = new CGI;
$CGI::DISABLE_UPLOADS = 1;          # Disable uploads
$CGI::POST_MAX        = 512 * 1024; # limit posts to 512K max


#try to retrieve cookie.  
my $sid = $cgi->cookie("CGISESSID") || undef;


#create session... If I retrieved a previous session id, reconnect to it. 
#if not, create a new session.
my $session = new CGI::Session(undef, $sid, {Directory=>'c:/temp/session/'});


print $session->param("days");


Now, depending on what kinda of privacy setting you may have set in your browser, the cookie may or may not be set. So you might want to check that and see if there are any issues there. 


I mainly use Mozillay Firefox, but have used Mozilla, Netscape, Opera, and IE... and for all of them, you can look at what cookies are set and what values are contained in them. Might want to investigate that as well and see if the cookie is being set right. 


Title
List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 기본정보 Regular Expression Reference Hojung 2012.12.03 20842
공지 기본정보 모듈 설치방법 Hojung 2012.10.31 17806
공지 기본정보 Activestate 설치 + PATH 설정 + 모듈 설치 Hojung 2010.04.19 36076
64 예제코드 Perl script to push samples to Virustotal Hojung 2014.02.20 5908
63 예제코드 TS 디렉토리에서 techsupport 찾아 모델별로 mv 명령 출력 (File::Find) Hojung 2013.01.22 8324
62 예제코드 How can I read in an entire file all at once?: Hojung 2013.01.14 8879
61 예제코드 Perl Expect ssh and scp example script Hojung 2012.12.23 12194
60 기본정보 How to install HTML::HTMLDoc from Mac Hojung 2012.11.19 8073
59 기본정보 How to install module (모듈 설치방법 3가지) Hojung 2012.11.19 7822
58 기본정보 How to uninstall module from CPAN Hojung 2012.11.19 7987
57 예제코드 turning seconds into days, hours, minutes and seconds Hojung 2012.11.12 7744
56 예제코드 How to print Unix timestamp Hojung 2012.11.12 9481
55 기본정보 MAC에서 HTML::HTMLDoc 설치하기 Hojung 2012.10.31 8334
54 기본정보 Mac에서 PDF::FromHTML 모듈 설치하기 Hojung 2012.10.31 8032
53 기본정보 CPAN: Automatically install dependencies without confirmation Hojung 2012.10.31 8874
52 예제코드 WWW::Mechanize::Firefox file Hojung 2012.10.30 9915
51 예제코드 Get number of elements in an array and a hash Hojung 2012.06.04 7311
50 예제코드 Cross-platform cross-environment RPC server creation Hojung 2012.05.30 7677
49 예제코드 인수가 이메일형식인지 확인 Hojung 2012.03.11 7950
» 예제코드 How to keep session in Perl CGI Hojung 2012.03.07 7877
47 기본정보 CGI::Session::Tutorial Hojung 2012.03.06 8241
Board Pagination ‹ Prev 1 2 3 4 Next ›
/ 4

Designed by sketchbooks.co.kr / sketchbook5 board skin

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5