Hi,
Ich habe eine Frage, vielleicht kann mir hier ja jemand helfen. Würde mich freuen. :)
Ich habe ein Perlskript geschrieben, das ein Formular auswertet und als Ergebnis eine Seite ausgibt, die der User dann abspeichern soll. Nun ist es ja so, daß in der URL dann der Dateiname des Skriptes steht. Der Besucher muß dann beim Speichern der Seite die Dateiendung ebenfalls ändern, sonst wird das beim späteren Aufrufen ja nix.
Deshalb hatte ich mir gedacht, daß es doch schön wäre, wenn man im Skript die URL, die dann oben im Browser steht, bestimmen kann, so daß dann auch beim Abspeichern schon eine HTML-Datei angegeben wird. Ist das möglich? Und wenn ja, wie?
Die aktuelle URL eines CGI-Skriptes kriegst du z.B. so:
$THIS_URL = "http://".$ENV{'SERVER_NAME'}.$ENV{'SCRIPT_NAME'};
Es geht zwar auch mit SCRIPT_URI, aber auf einigen Webserver gibt es den nicht :(
Dein problem liesse sich auch anders lösen:
Kurz gesagt: Tricks den Webserver/Browser aus :)
Geb als Content-type nicht irgentwas bekanntes, was der Browser ausführen kann, wie text/html, application/zip, etc...,sondern etwas unbekanntes, was aber auch der Webser nicht kennt (also was nicht in mime.conf bei Apache installiert ist).
Z.B.: "Content-type: application/dowload\n\n"
Da der Webserver damit nichts anfangen kann, und der Browser auch nichts, hält der Browser es für eine Applikation und gibt dir das Fenster zum Starten, Speichern oder Abbrechen.
Um zusätzlich noch den Dateinamen anzugeben, mußt du bei den Header noch "Content-Disposition: filename=blafasel\n" angeben.
Ciao,
Wolfgang