Kategorien:
Suchbegriffe:
Suchfelder:
Suche starten
Neue Beiträge / Top 7
Alle Artikel / Liste
Bücher zu ASP/ASP.Net
Startseite / Hilfe
Fragen zu ASP/ASP.NET
Datenschutzrichtlinen
Impressum / Kontakt
Das ASP.Net Codebook. Die unentbehrliche Referenz für alle ASP.Net-Entwickler [Autoren: Stefan Falz, Karsten Samaschke]
Active Server Pages-FAQ
Active Server Pages - FAQ (v. 1.50) © 2000 - 2020 by Stefan Falz Webconsulting

GetFile! Dynamischer Dateiupload im Browser

ASP Allgemein Zurück Druckversion Stefan Falz 23.10.2000
Frage: Bei Response.Redirect "seite.asp" wird immer ein Fehler ausgegeben. Warum?
Response.Redirect sendet einen Statuscode an den Browser, der ihn darüber informiert,
daß die angeforderte Datei auf einem anderen Platz als dem angeforderten erreichbar ist.

Folgende Angaben werden gesendet:
HTTP/1.0 302 Object Moved
Location <URL>

Dies weist den Browser an, die in <URL> angegebene Adresse aufzurufen.

Da das HTTP-Protokoll verlangt, dass die HTTP-Header vor dem eigentlichen HTM-Code
gesendet werden muessen, wird ein Response.Redirect innerhalb eines ASP-Skripts immer fehlschlagen,
wenn schon eine Ausgabe erzeugt wurde.

Nachfolgend sehen Sie ein Beispiel für eine solche Fehlermeldung:

    Header-Fehler
    
    /verzeichnis/test.asp, Zeile x

    Die HTTP-Header sind bereits in den Client Browser geschrieben.
    Änderungen am HTTP-Header müssen vorgenommen werden,
    bevor der Seiteninhalt geschrieben wird.

Es gibt mehrere Möglichkeiten, dies trotzdem zu ermöglichen:



Erstens durch die Angabe von Response.Buffer = True vor der ersten HTML-Ausgabe, vorzugsweise
in der ersten oder zweiten (wenn eine Standardsprache innerhalb der ASP-Seite angegeben wird) Zeile des
Skripts.

[redirect.asp]
<%
Response.Buffer = True
%>
<html>
<head>
    <title>Redirect nach Ausgabe</title>
</head>
<body>
<%
If Request("Password") <> "passwort" Then
    Response.Redirect "login.asp"
End if
%>
</body>
</html>



Desweiteren können Sie den ASP-Code, der die Prüfung vornimmt, ob ein Redirect erfolgen muss, vor der
ersten HTML-Ausgabe einfügen:

[redirect.asp]
<%
' --- Pufferung der Ausgabe wird nicht benötigt, ist aber trotzdem
' --- zu empfehlen, da die Abarbeitung des Codes effizienter erfolgt.
' --- Response.Buffer = True
If Request("Password") <> "passwort" Then
    Response.Redirect "login.asp"
End if
%>
<html>
<head>
    <title>Redirect nach Ausgabe</title>
</head>
<body>
Hier steht der eigentliche Text
</body>
</html>
Sehr gut
1 2 3 4 5 6
Ungenügend
Zurück | Bisherige Aufrufe: 23793 | Bisherige Bewertungen: 51 | Durchschnitt: 1,63
Stefan Falz Webconsulting