Avatar billede steen_hansen Forsker
22. marts 2005 - 09:40 Der er 16 kommentarer og
1 løsning

Ny fejl på nyt webhotel

Jeg skal have noget gammelt kode med på en ny side, og derfor har jeg kopieret de gamle sider og databaser over, så jeg kan se det i funktion. Men jeg er begyndt at få denne fejl visse steder:


Response object error 'ASP 0156 : 80004005'

Header Error

/default.asp, line 72

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.


Linie 72: Response.Redirect "default.asp"


Hvad betyder denne fejl? Den forekommer typisk, når jeg forsøger at redirecte. Så vidt jeg kan se er problemet noget med, HTTP headers (?) allerede er skrevet til klienten. Alle header-modifikationer skal laves før sidens indhold udskrives.

Det lyder meget logisk, men ...?
Avatar billede fennec Nybegynder
22. marts 2005 - 09:45 #1
Det er sikkert fordi dit site kører på ChiliASP, og der må der ikke være noget udskrift inden man laver en redirect.

1.
response.write "Noget tekst"
response.redirect(url)

2.
<%
ASP kode
%>
HTML/SCRIPT kode
<%
response.redirect(url)

Giver begge fejlen...
Avatar billede fennec Nybegynder
22. marts 2005 - 09:48 #2
... Løsningen er selvfølgelig så at fjerne alle udskrifter til skærmen, der forekommer, inden man redirecter :o)
Avatar billede steen_hansen Forsker
22. marts 2005 - 09:50 #3
Den må jeg lige kigge nærmere på. Vender tilbage om lidt ...
Avatar billede steen_hansen Forsker
22. marts 2005 - 09:55 #4
Hvordan skal denne her så grejes? Det bliver da en anelse besværligt :/

Dim Dato
Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time

If Request.Form("mode") = "indsaet" Then
    strSQL = "INSERT INTO info (headline, text, tid) values(" & _
    "'" & Replace(Request.Form("headline"),"'","''") & "'," & _
    "'" & Replace(Request.Form("tekst"),"'","''") & "'," & _
    "'" & Dato & "')"

    Conn.Execute strSQL
    Conn.Close

    Response.Redirect "default.asp"
End If
Avatar billede fennec Nybegynder
22. marts 2005 - 09:59 #5
Det burde ikke skabe problemet. Du må have mere kode, inden du kommer ned til dette.
Avatar billede steen_hansen Forsker
22. marts 2005 - 10:15 #6
Du får lige hele koden _med_ tabulatorer :)

                            <%
                            Set Conn = Server.CreateObject("ADODB.Connection")
                            dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/info.mdb")
                            Conn.open dbConn

                            Dim Dato
                            Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time

                            If Request.Form("mode") = "indsaet" Then
                                strSQL = "INSERT INTO info (headline, tekst, tid) values(" & _
                                "'" & Replace(Request.Form("headline"),"'","''") & "'," & _
                                "'" & Replace(Request.Form("tekst"),"'","''") & "'," & _
                                "'" & Dato & "')"

                                Conn.Execute strSQL
                                Conn.Close

                                Response.Redirect "default.asp"
                            End If

                            strSQL = "SELECT TOP 1 * FROM info ORDER BY infoID DESC"
                            Set RS = Conn.Execute (strSQL)
                            %>

                            <table border="0" cellpadding="0" cellspacing="0" style="width: 100%;" class="tekst11">

                            <% If RS.EOF Then %>

                                <tr>
                                    <td style="width: 100%;">Tekst</td>
                                </tr>

                            <% Else %>

                                <tr>
                                    <td><br><b><%=FormatText(RS("headline"))%></b></td>
                                </tr>
                                <tr>
                                    <td style="width: 100%;"><%=FormatText(RS("tekst"))%></td>
                                </tr>
                                <tr>
                                    <td style="width: 100%;">Tekst</td>
                                </tr>

                            <% End If %>

                            </table>

                            <%
                            RS.Close
                            Conn.Close
                            Set Conn = nothing
                            %>
Avatar billede steen_hansen Forsker
22. marts 2005 - 10:19 #7
Fejlen opstår, når jeg opretter en nyhed, og der derefter bliver redirected til default.asp. Jeg har samme problem andre steder, f.eks. i et debatforum fra samme side.
Avatar billede steen_hansen Forsker
22. marts 2005 - 10:21 #8
.... så det er måske oprettelses-siden, der giver problemet?
Avatar billede steen_hansen Forsker
22. marts 2005 - 10:23 #9
Jeg tror løsningen er her? http://support.microsoft.com/kb/229657/EN-US/
Avatar billede fennec Nybegynder
22. marts 2005 - 10:27 #10
Har du en include på siden også?? For du mangler nogle tags (<html>, <body>). Kunne forstille mig du måske henter dem i toppen af siden.
Avatar billede steen_hansen Forsker
22. marts 2005 - 10:27 #11
Jeg fandt ud af det:

                            <%
                            Set Conn = Server.CreateObject("ADODB.Connection")
                            dbConn = "SERVER=Local;DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/fpdb/info.mdb")
                            Conn.open dbConn

                            Dim Dato
                            Dato = Day(Date) & "/" & Month(Date) & "/" & Year(Date) & " " & Time

                            If Request.Form("mode") = "indsaet" Then
                                strSQL = "INSERT INTO info (headline, tekst, tid) values(" & _
                                "'" & Replace(Request.Form("headline"),"'","''") & "'," & _
                                "'" & Replace(Request.Form("tekst"),"'","''") & "'," & _
                                "'" & Dato & "')"

                                Conn.Execute strSQL
                                Conn.Close

                                Response.Redirect "default.asp"
                            End If

                            strSQL = "SELECT TOP 1 * FROM info ORDER BY infoID DESC"
                            Set RS = Conn.Execute (strSQL)
                            %>


sættes op over <HTML>, og så virker skidtet. Smid et svar, fennec :)
Avatar billede steen_hansen Forsker
22. marts 2005 - 10:28 #12
Ja, jeg tog kun den relevante kode med. Ellers kommer der jo en del mere med :)
Avatar billede fennec Nybegynder
22. marts 2005 - 10:31 #13
.o) <-- One Eyed Jack
Avatar billede steen_hansen Forsker
22. marts 2005 - 10:32 #14
Takker for indsatsen :)
Avatar billede fennec Nybegynder
22. marts 2005 - 10:51 #15
no prob.
Opbevede selv samme problem ½ års tid tilbage. Jeg havde bare mine <html><body> tags i en includefil, som jeg smed ind i toppen af siderne. Den blev jeg nød til at flytte :o)
Avatar billede steen_hansen Forsker
22. marts 2005 - 10:55 #16
Ok, jeg forsøger lidt af det samme, men kun med tabellen, som i grove træk ser sådan ud:

<html>

<body>

<!-- #include virtual="/includes/beginning.asp" -->
<!-- #include virtual="/includes/content.asp" -->
<!-- #include virtual="/includes/end.asp" -->

</body>

</html>

Så slipper jeg for at redigere 31245486 sider hver gang der laves ændringer :D
Avatar billede steen_hansen Forsker
25. maj 2005 - 23:51 #17
fennec, bare til en orientering:

Jeg havde doctype allerøverst i dokumentet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

Når den står der, og der redirectes, skal der redirectes inden doctype defineres. Desuden ligger mit hotel på Windows-server, så det har vist ikke noget med ChiliASP at gøre. Bare til din orientering :)



<%
Response.Buffer = True

[DB-forbindelse åbnes]

If RS.EOF Then
    .......
    .......
    Response.Redirect .......
End If
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>
<title></title>
</head>

<body>

[En masse HTML og ASP]

</body>

</html>

<% [DB-forbindelse lukkes] %>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester