1 ###############################################################################
3 # ¥Ñ¥é¥á¡¼¥¿¤ò¾ï¤ËEUCÊÑ´¹¤¹¤ëCGI¥¯¥é¥¹
5 ###############################################################################
13 #==============================================================================
15 #==============================================================================
18 $ENV{PATH_INFO} =~ s/^$ENV{SCRIPT_NAME}//;
19 my $self = CGI->new();
21 return bless $self,$class;
24 #==============================================================================
25 # ¥¿¥¤¥à¥¢¥¦¥È¤·¤Æ¤¤¤ë¥»¥Ã¥·¥ç¥ó¤òÇË´þ¤·¤Þ¤¹
26 #==============================================================================
31 my $dir = $wiki->config('session_dir');
32 my $limit = $wiki->config('session_limit');
34 opendir(SESSION_DIR,$dir) or die "$!: $dir";
35 my $timeout = time() - (60 * $limit);
36 while(my $entry = readdir(SESSION_DIR)){
37 if($entry =~ /^cgisess_/){
38 my @status = stat("$dir/$entry");
39 if($status[9] < $timeout){
40 unlink("$dir/$entry");
44 closedir(SESSION_DIR);
47 #==============================================================================
48 # CGI::Session¥ª¥Ö¥¸¥§¥¯¥È¤ò¼èÆÀ
49 #==============================================================================
55 # ¥»¥Ã¥·¥ç¥ó³«»Ï¥Õ¥é¥°¤¬Î©¤Ã¤Æ¤ª¤é¤º¡¢Cookie¤Ë¥»¥Ã¥·¥ç¥óID¤¬
56 # ¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¥»¥Ã¥·¥ç¥ó¤òÀ¸À®¤·¤Ê¤¤
57 if(!defined($self->{session_cache})){
58 if((not defined $start or $start!=1) && $self->cookie(-name=>'CGISESSID') eq ""){
61 my $dir = $wiki->config('session_dir');
62 my $limit = $wiki->config('session_limit');
63 my $path = &Util::cookie_path($wiki);
64 my $session = CGI::Session->new("driver:File",$self,{Directory=>$dir});
65 my $cookie = CGI::Cookie->new(-name=>'CGISESSID',-value=>$session->id(),-expires=>"+${limit}m",-path=>$path);
66 print "Set-Cookie: ".$cookie->as_string()."\n";
67 $self->{session_cache} = $session;
71 return $self->{session_cache};
75 #==============================================================================
76 # ¥Ñ¥é¥á¡¼¥¿¤ò¼èÆÀ¤Þ¤¿¤ÏÀßÄê
77 #==============================================================================
83 # ɬ¤ºEUC¤Ø¤ÎÊÑ´¹¤ò¹Ô¤¦
84 if(Util::handyphone()){
86 #my @array = map {&Jcode::convert(\$_, "euc")} $self->CGI::param($name,$value);
88 my @values = $self->CGI::param($name,$value);
90 foreach my $value (@values){
91 &Jcode::convert(\$value,"euc");
102 return map { &Jcode::convert(\$_, "euc") } $self->CGI::param();
106 return $self->CGI::param($name, $value);
108 return $self->CGI::param();
113 #==============================================================================
114 # ¸½ºß¤Î¥Ú¡¼¥¸¤ËÁ«°Ü¤¹¤ë¤¿¤á¤ÎURL¤ò¼èÆÀ¤·¤Þ¤¹¡£
115 #==============================================================================
118 my $url = $self->url();
120 foreach my $param ($self->param()){
126 $query .= &Util::url_encode($param);
128 $query .= &Util::url_encode($self->param($param));
133 #==============================================================================
134 # ½ªÎ»»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤Þ¤¹¡£
135 #==============================================================================
138 undef($self->{session_cache}->{_SESSION_OBJ});
139 undef($self->{session_cache});