Thread Script setzt keine Cookies mehr: nach Server Update (11 answers)
Opened by Gast at 2003-12-09 18:16

Zork
 2003-12-09 19:26
#471 #471
User since
2003-12-09
6 Artikel
BenutzerIn
[default_avatar]
ich kann mal versuchen die richtigen schnipsel raus zu suchen.. leider ist das ganze eben etwas unübersichtlich:

aalso: aufgerufen wird in der login subroutine:
Code: (dl )
&setcookie('sessionid',$user{'sessionid'},0,'.global-market.ch','/'); 
 

folgende Subroutine:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
sub setcookie { 
   my($ky,$vl,$expires,$domain,$path) = @_;
   my @days = ("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
   my @months = ("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");

   $expires=1800000000 if (! defined $expires); #15.1.2027
   $expires=1800000000 if ($expires<0);
   $domain = $ENV{'SERVER_NAME'} if (! defined $domain);
   $path = "/" if (! defined $path);

   if ($expires==0) {
       $expires='';
   } else {
       my($seconds,$min,$hour,$mday,$mon,$year,$wday) = gmtime($expires);
       $seconds = "0" . $seconds if ($seconds < 10);
       $min = "0" . $min if ($min < 10);
       $hour = "0" . $hour if ($hour < 10);
       $year += 1900;
       $expires = "expires=$days[$wday], $mday-$months[$mon]-$year $hour:$min:$seconds GMT; ";
   }

   $vl =~ s/ /+/g;
   print "Set-Cookie: $ky=$vl; $expires path=$path; domain=$domain;\n";
}


Folgende Sub sollte (wenn ich mich nicht irre) wieder irgendwelche Cookies rauslesen:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
sub checksession { 
   my %cookie=();
   foreach (split(/; /, $ENV{'HTTP_COOKIE'})) {
       $_=~s/\+/ /g;
       my ($chip, $val) = split(/=/,$_,2);
       $chip =~ s/%([A-Fa-f0-9]{2})/pack('c',hex($1))/ge;
       $val =~ s/%([A-Fa-f0-9]{2})/pack('c',hex($1))/ge;
       $cookie{$chip} = $val;
   }

   my $sessionid='';
   $sessionid=$cookie{'sessionid'} if (exists $cookie{'sessionid'});
   if ($sessionid ne '') {
       $sth=$db->prepare("SELECT * FROM user,access WHERE sessionid=\"$sessionid\" AND user.rubrik=access.rubrik AND stat=1");
       $sth->execute;
       if ($rw=$sth->fetchrow_hashref) {
           %user=%$rw;
           $sth->finish;
           return;
       }
       $sth->finish;
   }
   $sth=$db->prepare("SELECT * FROM user,access WHERE username=\"\" AND user.rubrik=access.rubrik AND stat=1");
   $sth->execute;
   if ($rw=$sth->fetchrow_hashref) {
       %user=%$rw;
   } else {
       %user=('username'=>'');
   }
   $sth->finish;
}


schon mal vielen dank für die hilfe
zork

View full thread Script setzt keine Cookies mehr: nach Server Update