Cheatah: was ist falsch am PL ? Url eingabe => Refresh auf url

Beitrag lesen

Hi,

<meta HTTP-EQUIV="REFRESH" CONTENT="111; URL=http://www.webseite.de">

Aber ich weiss nicht, wie man das transformiert ?

in HTTP gar nicht, weil dort keine Zeitangabe möglich ist - dieses Protokoll funktioniert grundsätzlich instantan. Daher ist die Bezeichnung "HTTP-EQUIV" eigentlich grottenfalsch, was natürlich sehr irreführend wirkt.

Ich bin da von der Änderung des "Content-Type" ausgegangen...

Das ist nur ein möglicher HTTP-Header.

"<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">"  zu ~ dem macht:
"print "Content-type: text/html\n\n";"

Der Header muß _vor_ jedem Inhalt stehen. Verwechsele auch nicht HTTP und HTML: "Content-Type" ist HTTP, "<meta>" HTML. Letzteres wird mit ersterem transportiert.

-Der Perl Pfad von VirtualAve ist #!/usr/local/bin/perl
das müsste stimmen

Besser:

#!/usr/local/bin/perl -w
use strict;

Damit wirst Du auf (auch potentielle) Fehler aufmerksam gemacht. Sämtliche Infos stehen im Error-Log des Servers - gut wäre für Dich auch ein Telnet-Zugang.

"print header, start_html('test'), p('Eingegeben wurde: ' . param ('textfeld')), end_html;"
gibt korrekt den TEXT aus...aber das ist ja nicht das Ziel...

Tja, ich hab Dir gesagt, daß Du in

perldoc CGI

nachlesen sollst, wie Du start_html erweiterst, um den Refresh hinzubekommen ;-) Ich nehme doch stark an, Du hast Perl bei Dir installiert, oder? Ohne Doku (die selbstverständlich dabei ist) kann man schlecht programmieren.

Das hat leider nicht geklappt---

Ich zitiere noch mal die Zeile, die mir gleich ins Auge springt:

print "REFRESH 111; URL=$textfeld">

Und ich meine _nicht_, daß das ein abgekappter <meta>-Tag ist, der eigentlich in den <head>-Bereich gehört, sondern spiele auf einen Syntaxfehler an. Teste Deine Scripts mit

perl -c scriptname.pl

Es wurde nur der Titel TEST ausgeben und der Refresh erschien
gar nicht...

Schau Dir ggf. mal den Quellcode der Ausgabe an.

Cheatah