Avatar billede eromaster Nybegynder
13. august 2003 - 19:31 Der er 21 kommentarer og
1 løsning

Fejl i HTTP Header

Jeg har netop flyttet fra min egen intranet webserver til web10's webserver og jeg får denne fejl når jeg prøver at poste i tagwallen:

Response object error 'ASP 0156 : 80004005'

Header Error

/tagwall.asp, line 56

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

Den poster fint i databasen men når den når til denne linie: Response.Redirect("default.asp?page=news_spec&id=" & Request.Form("id_nyhed")) så kommer den med fejlen, hvad skal jeg gøre?
Avatar billede eagleeye Praktikant
13. august 2003 - 19:41 #1
Prøv at tilføje denne linje i toppen af din kode, det plejer at hjælpe:

<% Response.Buffer = True %>
Avatar billede eagleeye Praktikant
13. august 2003 - 19:42 #2
Og hvis det ikke er nok så prøv også at tilføje:  Response.Clear

lige før redirect linjen:

Response.Clear
Response.Redirect("default.asp?page=news_spec&id=" & Request.Form("id_nyhed"))
Avatar billede eromaster Nybegynder
13. august 2003 - 20:08 #3
#1 samme fejl med response.buffer = true i min top.asp file
#2 denne fejl kommer:

Response object error 'ASP 0159 : 80004005'

Buffering Off

/comment.asp, line 52

Buffering must be on.
Avatar billede eromaster Nybegynder
13. august 2003 - 20:08 #4
Linie 52:Response.Clear
Avatar billede eagleeye Praktikant
13. august 2003 - 20:10 #5
Response.Buffer = True  skal være i toppen når man laver Clear

Eller så ungå/fjern evt linjer med response.write.
Avatar billede eromaster Nybegynder
13. august 2003 - 20:14 #6
Hvis jeg har #1 i toppen af comment.asp og response.clear i bunden af dokumentet får jeg denne fejl når jeg bare prøver at browse dokumentet:

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
Avatar billede eagleeye Praktikant
13. august 2003 - 20:16 #7
Du skal havde Clear i linje lige før linjen med redirect.
Avatar billede eromaster Nybegynder
13. august 2003 - 20:17 #8
Det har jeg også. Prøv at poste en kommentar i denne nyhed, det er den side jeg arbejder på: http://www.internecine.dk/default.asp?page=news_spec&id=14
Avatar billede eromaster Nybegynder
13. august 2003 - 20:19 #9
hele koden:
<% Response.Buffer = True %>
<center>
<table border="0" width="200" cellspacing="0" cellpadding="0"ID="Table9">
<tr>
<font face=verdana size=2>

<form method=post action="comment.asp?mode=AddNew" id=form name=form>
<font size=1 ><b>Name:</b></font>
<br>
<INPUT id="navn" name=navn type=text class=input>
<br>
<font size=1 ><b>E-mail:</b></font>
<br>
<INPUT id="email" name=email type=text class=input>
<br>
<font size=1><b>Add Comment:</b></font>
<textarea id=kommentar name=kommentar size="10" class="textbox" style="background: transparent; color: white;" rows="8" cols="40"></textarea>
<INPUT type=hidden value="<%=request.querystring("id")%>" id="id_nyhed" name=id_nyhed>
<INPUT type="submit" value="Post" id=submit1 name=submit1 class="button">
<input type="hidden" value=AddNew name=mode id=mode>
</form>   

</font>
</tr>
</table>

</center>

<%if Request.Form("mode") = "AddNew" then

    Set DataConn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)};uid=admin; "
    DSN = dsn & "DBQ=" & server.mappath("db/db.mdb")
    DataConn.Open DSN
    Set Record = Server.CreateObject("ADODB.RecordSet")
    Record.open "Select * From [kommentar] Order by id", DataConn, 1, 3

    Record.AddNew
        Record.Fields("navn") = Request.Form("navn")
        Record.Fields("email") = Request.Form("email")
        Record.Fields("kommentar") = Request.Form("kommentar")
        Record.Fields("dato") = date
        Record.Fields("tid") = TIME
        Record.Fields("ip") = request.ServerVariables("REMOTE_ADDR")
        Record.Fields("id_nyhed") = Request.Form("id_nyhed")
    Record.Update

    Record.Close
    set Record = nothing
    Dataconn.Close
   
    Response.Clear
    Response.Redirect("default.asp?page=news_spec&id=" & Request.Form("id_nyhed"))

end if%>
Avatar billede eagleeye Praktikant
13. august 2003 - 20:19 #10
Hvad skriver du til browseren, undervejs i filen??

Fejlen kommer fordi man skriver noget til brwoseren, eneten med response.write eller ren HTML kode. Så prøv at fjerne det, det kan være noget så banalt som at du skriv <html><head></head>osv til browseren. Hvis det ikke er noget du skal bruge så undlad at skrive det ud.
Avatar billede eagleeye Praktikant
13. august 2003 - 20:20 #11
Prøv at bytte rundt så ASP delen kommer føst så HTML koden ikke er skrivet i browseren:


<% Response.Buffer = True %>
<%if Request.Form("mode") = "AddNew" then

    Set DataConn = Server.CreateObject("ADODB.Connection")
    DSN = "DRIVER={Microsoft Access Driver (*.mdb)};uid=admin; "
    DSN = dsn & "DBQ=" & server.mappath("db/db.mdb")
    DataConn.Open DSN
    Set Record = Server.CreateObject("ADODB.RecordSet")
    Record.open "Select * From [kommentar] Order by id", DataConn, 1, 3

    Record.AddNew
        Record.Fields("navn") = Request.Form("navn")
        Record.Fields("email") = Request.Form("email")
        Record.Fields("kommentar") = Request.Form("kommentar")
        Record.Fields("dato") = date
        Record.Fields("tid") = TIME
        Record.Fields("ip") = request.ServerVariables("REMOTE_ADDR")
        Record.Fields("id_nyhed") = Request.Form("id_nyhed")
    Record.Update

    Record.Close
    set Record = nothing
    Dataconn.Close
   
    Response.Clear
    Response.Redirect("default.asp?page=news_spec&id=" & Request.Form("id_nyhed"))

end if%>
<center>
<table border="0" width="200" cellspacing="0" cellpadding="0"ID="Table9">
<tr>
<font face=verdana size=2>

<form method=post action="comment.asp?mode=AddNew" id=form name=form>
<font size=1 ><b>Name:</b></font>
<br>
<INPUT id="navn" name=navn type=text class=input>
<br>
<font size=1 ><b>E-mail:</b></font>
<br>
<INPUT id="email" name=email type=text class=input>
<br>
<font size=1><b>Add Comment:</b></font>
<textarea id=kommentar name=kommentar size="10" class="textbox" style="background: transparent; color: white;" rows="8" cols="40"></textarea>
<INPUT type=hidden value="<%=request.querystring("id")%>" id="id_nyhed" name=id_nyhed>
<INPUT type="submit" value="Post" id=submit1 name=submit1 class="button">
<input type="hidden" value=AddNew name=mode id=mode>
</form>   

</font>
</tr>
</table>
Avatar billede eromaster Nybegynder
13. august 2003 - 20:23 #12
Bruger jeg din kode så kommer denne fejl:
Response object error 'ASP 0156 : 80004005'

Header Error

/comment.asp, line 1

The HTTP headers are already written to the client browser. Any HTTP header modifications must be made before writing page content.
Avatar billede eromaster Nybegynder
13. august 2003 - 20:24 #13
kan jeg ikke maile dig min top fil, gider ikke lige poste den pga. noget autologin! email addr?
Avatar billede eromaster Nybegynder
13. august 2003 - 20:28 #14
Sådan ser siden hvor jeg poster kommentarne og formen hvor man kan poste kommentar:

      <%
      Set DataConn = Server.CreateObject("ADODB.Connection")
      DSN = "DRIVER={Microsoft Access Driver (*.mdb)};uid=admin; "
      DSN = dsn & "DBQ=" & server.mappath("db/db.mdb")
      DataConn.Open DSN
     
      Set nyhed = Server.CreateObject("ADODB.RecordSet")
      id_nyhed = request.querystring("id")
      Set nyhed = Server.CreateObject("ADODB.RecordSet")
      nyhed.open "SELECT * FROM nyheder WHERE id=" & id_nyhed, DataConn, 1, 3
     
      nyhed_tekst = replace(tjektegn(nyhed("nyhed")), vbcrlf, "<br>")
      %>
                 
      <b><%=nyhed("emne")%></b>: <font size=1>by <a href="default.asp?page=members"><%=nyhed("navn")%></a>&nbsp;@&nbsp;<%=nyhed("dato")%>&nbsp;:&nbsp;<%=nyhed("tid")%></b></font>
      <br>
      <font face=tahoma style="font-size: 8pt">
      <%=nyhed_tekst%>
      </font>
   
      <br>
      <br>
      <center><!--#include file="comment.asp"--></center>
      <br>
           
      <%
      set nyhed = nothing
      Dataconn.Close
      %>
                 

      <%
      Set DataConn = Server.CreateObject("ADODB.Connection")
      DSN = "DRIVER={Microsoft Access Driver (*.mdb)};uid=admin; "
      DSN = dsn & "DBQ=" & server.mappath("db/db.mdb")
      DataConn.Open DSN
     
      Set kommentar = Server.CreateObject("ADODB.RecordSet")
      kommentar.open "Select * From [kommentar] where id_nyhed=" & cint(request.QueryString("id")) &" order by id asc", DataConn
      if not kommentar.EOF then
      kommentar.MoveFirst
      end if
      do while not kommentar.EOF
     
    if kommentar("navn") = ("") then
    navn = ("None")
    else
    navn = kommentar("navn")
    end if
     
      tekst_kommentar = replace(server.HTMLEncode(kommentar("kommentar")), vbcrlf, "<br>")
      %>
     
<center>
<table border="0" width="400" cellspacing="0" cellpadding="0" style="border: 1 solid #990F0C" ID="Table3">

<tr>
<td width="100%">
<font face=tahoma style="font-size: 8pt">
&nbsp;#<%plads = plads + 1%><%=plads%></b>: by <%if not kommentar("email") = ("") then%><a href=mailto:<%=kommentar("email")%>><%=navn%></a><%else%><%=navn%><%end if%> @ <%=kommentar("dato")%> - <%=kommentar("tid")%> | IP Logged
</font>
</td>
</tr>

<tr>
<td width="100%" height="19" colspan="2">

<table width="100%" border="0" cellspacing="0" cellpadding="5" ID="Table4" style="border-top: 1 solid #990F0C">
<tr>
<td>
<font face=tahoma style="font-size: 8pt">
<%=tekst_kommentar%>
</font>
</td>
</tr>
</table>

</td>
</tr>
</table>
</center>

      <br>
      <br>
     
     
      <%
      kommentar.MoveNext
      loop
      kommentar.Close
      set kommentar = nothing
      Dataconn.Close
      %>
Avatar billede eagleeye Praktikant
13. august 2003 - 20:29 #15
Ok, det ligger i en include fil.

Jeg ved ikke om det hjælper så, men prøv på den side som includer filen også at tilføje buffer linjen i toppen af den fil
<% Response.Buffer = True %>
Avatar billede eromaster Nybegynder
13. august 2003 - 20:32 #16
Jeg har prøvet at include filen i min top fil, men ingen ændring - kommer dog ikk med header fejl før man prøver at poste noget. Man kan sagtens slette og redigere, men ikk poste
Avatar billede eromaster Nybegynder
13. august 2003 - 20:32 #17
Er der nogen anden måde at include filer på ?
Avatar billede eromaster Nybegynder
13. august 2003 - 20:34 #18
LOL nu virker det... hehe ved ikke hvad jeg gjorder, men du fortjener pointne, lav lige et svar
Avatar billede eagleeye Praktikant
13. august 2003 - 20:36 #19
Det lyder godt det virker

;)
Avatar billede eromaster Nybegynder
13. august 2003 - 20:36 #20
Lidt en kaos tråd :)
Avatar billede _just4fun_ Nybegynder
13. august 2003 - 20:49 #21
lidt sent på den, men ok :-)
Man kan godt bruge response.clear, men grunden til at den fucker op  er, at hvis man bruger response.redirect må man IKKE have skrevet noget tilbage til klienten. Hverken html eller noget andet.
Hvis man overholder det (som man jo gør hvis man 1) laver en buffer 2) fylder den op med html 3) clearer den igen med response.clear ) bitcher den ikke.
Avatar billede eromaster Nybegynder
13. august 2003 - 20:55 #22
Følgende virkede: response.buffer = true i toppen af dokumenterne og derefter ASP koden først i filen...
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