Schrift
[thread]12782[/thread]

Rückgabewert von Web-Server (Seite 2)

Leser: 2


<< |< 1 2 >| >> 13 Einträge, 2 Seiten
GwenDragon
 2008-11-25 11:55
#116586 #116586
User since
2005-01-17
14837 Artikel
Admin1
[Homepage]
user image
Entschuldigung, ich hatte vergessen, das use CGI so zu ändern, dass strict nicht meckert.

Code: (dl )
06: use CGI qw/:standard/;
Gast Gast
 2008-12-05 11:07
#116831 #116831
Hallo,

bin nun nach einigen Erweiterungen darauf gestoßen, dass ich einen Refresh der Seite benötige. Hier erst noch mal der relevante Code:

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
#!/usr/bin/perl

use HTTP::Daemon;
use HTTP::Status;
use strict;
use CGI qw/:standard/;

my $My_IP = 'localhost';
my $Name = "HTTP Server";

my $d = HTTP::Daemon->new(
        LocalHost => $My_IP,
        LocalPort => 3002,
);
die "$Name: Socket konnte nicht erstellt werden - Grund: $!\n" unless $d;

print " $Name läuft auf : <", $d->url, ">\n";
while (my $c = $d->accept) {
        while (my $r = $c->get_request) {
                if ($r->method eq 'GET') {
                        my $rs = new HTTP::Response(RC_OK);
                        $rs->content(CGI::start_html(-title=>' Anzeige '));
                        $rs->add_content(CGI::start_form);
                        $rs->add_content("Nr: " . CGI::textfield(-name=>'Nummer',-size=>30) . "ID: " . CGI::textfield(-name=>'Zuordnung', -size=>30));
                        $rs->add_content(CGI::submit(-value=>'Zuweisen') . CGI::submit(-value=>'Löschen') );
                        $rs->add_content(CGI::end_form . CGI::hr . CGI::end_html);
                        $c->send_response($rs);
                }
                else {
                        $c->send_error(RC_FORBIDDEN)
                }
        }
        $c->close;
        undef($c);
}


Kann mir jemand sagen, wie ich einen refresh durchführen kann?

Stefan
GwenDragon
 2008-12-05 12:57
#116837 #116837
User since
2005-01-17
14837 Artikel
Admin1
[Homepage]
user image
Was verstehst du unter einem Refresh? Dass der Brwoser die Seite nicht aus dem Browsercache holt?

Du musst ein Responseheader mit dem Eintrag Expires liefern, der ein HTTP-Datum vor dem heutigen besitzt.

Du kannst 0 reinsetzen:
Code: (dl )
$rs->header( 'Expires' => 0 );


oder korrekter:
Code: (dl )
$rs->header( 'Expires' =>'Thu, 03 Feb 1994 00:00:00 GMT';


Das Datum muss jedenfalls ein Datum für HTTP (RFC 1123) sein.
Also vom Format
Wed, 09 Feb 1994 22:23:32 GMT
Mit CPAN:HTTP::Date lässt sich das auch erzeugen, wenn du ein bestimmtes brauchst.
<< |< 1 2 >| >> 13 Einträge, 2 Seiten



View all threads created 2008-11-19 16:12.