Perl-Befehl um eine bestimmte WebSite aufzurufen?

Hallo,

ich denke mal das ist kein so grosses Problem, nur wissen muss man es: Ich habe ein CGI-Script, über welches User an Freunde eben eine Nachricht schicken können. Nur kommt dann immer als Bestätigung eine weisse Seite mit Text „EMail gesendet“ oder so ähnlich. Wie kann ich nun in so einem Script angeben dass eine bestimmte Seite aufgerufen wird (damit ich die Meldung schöner gestalten kann)?

Bestätigung eine weisse Seite mit Text „EMail gesendet“ oder
so ähnlich. Wie kann ich nun in so einem Script angeben dass
eine bestimmte Seite aufgerufen wird (damit ich die Meldung
schöner gestalten kann)?

Am Anfang des Scripts:
use CGI ‚:standard‘;
my $query = new CGI;

und dann, statt der Ausgabe der Seite (auch das print „Content-type: text/html\n\n“ entfernen)
print $query->redirect('http://www.was-auch-immer.de/danke.html’);

Klaus

wie unten, oder hart:

print "Location: http://www.irgendwas.de\n\n";

oder aber auch:

print "Location: foo.html\n\n";

ohen jedoch vorher andere header gesendet zu haben

eben nicht - deshalb bitte CGI.pm verwenden
So funktioniert es nicht bei allen Servern/Browsern

Wenn schon dann vorher ein
print „Status: 302 Moved\n“;
print „Location: foo.html\n\n“;

senden

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

1 Like

So funktioniert es nicht bei allen Servern/Browsern

ok, wusste ich nicht. hab gemeint das waere standard?

So funktioniert es nicht bei allen Servern/Browsern

ok, wusste ich nicht. hab gemeint das waere standard?

Ja schon, aber eben mit vollständigem Header.
Siehe RFC 2616:
302 Found
The requested resource resides temporarily under a different URI.

Vom Prinzip her ist zwar 301 „Moved“, aber 302 erscheint mir hier auch sinnvoller.
Wie auch die Verwendung von CGI.pm extrem sinnvoll ist, außer es spricht ein sinnvoller Grund dagegen. Wenn Du den Server selbst administrierst und noch kein CGI.pm installierst hast, spricht allerdings alles dafür, dies nachzuholen.

Egal, wie Du es nun löst, teste das Ergebnis mit verschiedenen Browsern auf verschiedenen Systemen.
Der Internet Explorer verzeiht aber fast jeden Fehler :wink:

Gruss, Ingo