Thread Cookie-Hash ist leer (CGI) (9 answers)
Opened by GwenDragon at 2010-10-27 14:14

GwenDragon
 2010-10-27 15:29
#142238 #142238
User since
2005-01-17
14785 Artikel
Admin1
[Homepage]
user image
Der Ersteller nahm an, dass über den dereferenzierten Hash und den Schlüssel auf den Wert zugreifen kann.


Testskript:
Code (perl): (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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use strict;
use warnings;

package cookies;

use Data::Dumper; $Data::Dumper::Indent = 1; $Data::Dumper::Useqq = 1;        
use CGI qw/:standard/;

my %cookies = ();

sub start {
  foreach ( cookie() ) {
    my %hash = cookie($_);

        print '### Debug ### 
Cookie: 
', Dumper(%hash), 
'######
';    

        $cookies{$_} = \%hash;
  }
  1;
}

sub get {
  my($name) = @_;
  return $name ? $cookies{$name} : \%cookies;
}

1;

package main;

use CGI qw/:standard/;
use Data::Dumper; $Data::Dumper::Indent = 1; $Data::Dumper::Useqq = 1;        

sub say {
        print "@_", "\n";
}

$ENV{HTTP_COOKIE} = 'url=%2Fcms%2Fadmin%2F12%2F; user=test';

cookies::start;

my $c = cookies::get();
say Dumper $c;

my $z = cookies::get('url');
say Dumper $z; 
say 'URL ist ', $z->{'url'}; 

1;


Ausgabe:
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
Odd number of elements in hash assignment at C:\TEST\test.pl line 13.
Odd number of elements in hash assignment at C:\TEST\test.pl line 13.
Use of uninitialized value in join or string at C:\TEST\test.pl line 39.
### Debug ###
Cookie:
$VAR1 = "test";
$VAR2 = undef;
######
### Debug ###
Cookie:
$VAR1 = "/cms/admin/12/";
$VAR2 = undef;
######
$VAR1 = {
"url" => {
"/cms/admin/12/" => undef
},
"user" => {
"test" => undef
}
};

$VAR1 = {
"/cms/admin/12/" => undef
};

URL ist


Logisch, die zwei Meldungen, denn von cookie(...) wird ja kein Hash geliefert. :(

Wieso war der bloss der Meinung, dass CGI::cookie(...) für jedes Cookie ein Wertepaar Name-Wert liefert?
Last edited: 2010-10-27 15:41:14 +0200 (CEST)

View full thread Cookie-Hash ist leer (CGI)