Ok, jetzt habe ich meine Templates gräßtenteils nach XHTML 1.0 Strict validiert.
Dabei fiel mir auf, dass es noch weiter Symptome für das Problem gab:
Redirects mit der bisherigen Eingabe im Query wurden nicht ausgeführt (der Browser hatte einfach nichts mehr angezeigt).
Mittlerweile bin ich dann auch auf den Trichter gekommen, dass meine Vermutungen bezüglich der Browser unberechtigt waren.
Esskar scheint einfach recht zu haben (man merke die diplomatische, undogmaitsche Ausdrucksweise <-- neu!!! :-D)
Das hier ist der alte Test-Text (bitte kein Mobben aufgrund des Inhaltes hier - klar?):
QuoteFirefox eine gute Entwicklugn war. Nur durch diesen Browser
gelang es mir eine Schwäche des Opera 7.5 heraus zu finden.
Mit dem IE hätte es übrigens nicht geklappt, weil dieser einen
Dreck auf CSS und positionierung mit irgend etwas beliebigem
außer Tabellen gibt.
Probiert es dochmal aus, hier ist mein testcode:
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package Test;
use base "CGI::Application";
use CGI::Application::Plugin::Forward;
use CGI::Application::Plugin::Redirect;
use CGI::Application::Plugin::Session;
use File::Spec;
sub setup {
my $self = shift;
$self->run_modes([qw(
start
third
second_runmode
)]);
}
# configure the session once during the init stage
sub cgiapp_init {
my $self = shift;
# Configure the session
$self->session_config(
CGI_SESSION_OPTIONS => [
"driver:File",
$self->query(),
{
Directory => File::Spec->catfile(qw(c: apache cgi-bin cms session)),
}
],
DEFAULT_EXPIRY => '+ws',
COOKIE_PARAMS => {
-expires => '+24h',
-path => '/',
},
SEND_COOKIE => 1,
);
}
sub start {
my $self = shift;
my $url = $self->query->url(-relative=>1,) . '?rm=third';
$self->session->param('test' =>
qq~Firefox eine gute Entwicklugn war. Nur durch diesen Browser
gelang es mir eine Schwäche des Opera 7.5 heraus zu finden.
Mit dem IE hätte es übrigens nicht geklappt, weil dieser einen
Dreck auf CSS und positionierung mit irgend etwas beliebigem
außer Tabellen gibt.~
);
return qq~
<html>
<body>
<a href="$url">fwd</a>
<p>Session-p: 'blubb'</p>
</body></html>
~;
}
sub second_runmode {
my $self = shift;
my $rm = $self->get_current_runmode; # 'second_runmode'
my $p = $self->query->param('test') || 'kein Query-P';
my $url = $self->query->url(-relative=>1);
return qq~
$rm, $p<br />
<a href="$url">start</a>
~;
}
sub third {
my $self = shift;
my $p = $self->session->param('test') || 'keine Session';
$self->session->close();
$self->session->delete();
return $self->redirect($self->query->url(-relative=>1,) . '?rm=second_runmode;test=' . $p);
}
#sub cgiapp_postrun {
# my $self = shift;
# my $output_ref = shift;
#
# # mach was
# $self->param('postrun' => 1);
#}
1;
my $app = Test->new();
$app->run();
Gibt es gute Module zum quoten gefährlicher Query-Parameter?
Ich dachte da so an HTML::Entities...
Grüße, pktm