Foros del Web » Programando para Internet » ASP Clásico »

Error con objeto Response

Estas en el tema de Error con objeto Response en el foro de ASP Clásico en Foros del Web. Tengo un problema estoy haciendo un libro de visitas y el cual cuando se llena un formulario llama a firmar.asp, pero me da este error: ...
  #1 (permalink)  
Antiguo 12/07/2006, 20:32
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 5 meses
Puntos: 7
Error con objeto Response

Tengo un problema estoy haciendo un libro de visitas y el cual cuando se llena un formulario llama a firmar.asp, pero me da este error:
Cita:
objeto Response error 'ASP 0156 : 80004005'

Error de encabezado

/instinto/firmar.asp, line 70

Los enbezados HTTP ya están escritas en el explorador cliente. Cualquier cambio en el encabezado HTTP se debe hacer antes de escribir el contenido de la página.
y esta es firmar.asp:
Código:
<html>
<head>
<link rel="STYLESHEET" type="text/css" href="estilos.css">
</head>
<body bgProperties="fixed">
<%
dim conn, datos
Const adOpenForwardOnly = 0
Const adOpenKeyset = 1
Const adOpenDynamic = 2
Const adOpenStatic = 3
Const adLockReadOnly = 1
Const adLockPessimistic = 2
Const adLockOptimistic = 3
Const adLockBatchOptimistic = 4

if request.form("nombre") = "" or request.form("comentarios")="" then%>
<div align="center">
<center>
&nbsp;
<p>&nbsp;</p>
<p>&nbsp;</p>
<table border="0" width="85%">
<tr>
<td width="100%">
&nbsp;
<table border="10" width="100%" bgcolor="#FF0000" bordercolor="#000000">
<tr>
<td width="100%">
<p align="center"><font color="#FFFFFF">Los campos "Nombre" y "Comentario" son obligatorios</font></td>
</tr>
</table>
</td>
</tr>
<tr>
<td width="100%">
<p align="center"><a href="javascript:window.history.back()"><font color="#FCE043">Intentalo de nuevo</font></a>
</td>
</tr>
</table>
</center>

<%else
datos= Server.MapPath ( "/instinto/bd/librovisitas.mdb" ) 

Set conn= Server.CreateObject("ADODB.connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data source="&datos&";"

set rs=createobject("ADODB.Recordset")
rs.CursorType = adOpenKeyset 
rs.LockType = adLockOptimistic 

rs.open "visitas",conn
rs.addnew
rs("nombre")=request.form("nombre")
rs("mail")=request.form("mail")
rs("web")=request.form("web")
rs("pais")=request.form("pais")
rs("opinion")=request.form("opinion")
rs("como")=request.form("como")
rs("ip")=request.servervariables("REMOTE_ADDR")
rs("fecha")=now()
comentarios=replace(request.form("comentarios"),chr(10),"<br>")
rs("comentarios")=comentarios
rs.update
rs.close
conn.close
set rs=nothing
set conn=nothing
response.redirect "libro.asp?insertado=si"<--------- esta es la linea que me da error
end if%>
</body>
</html>
__________________
I'm gonna start a revolution from my bed...
  #2 (permalink)  
Antiguo 12/07/2006, 21:05
Avatar de pablinff  
Fecha de Ingreso: diciembre-2005
Ubicación: Argentina
Mensajes: 383
Antigüedad: 18 años, 5 meses
Puntos: 7
Ya encontré la solución!!!
Era porque el objeto response.redirect no acepta que se escriba en la página antes de mandarla y para solucionarlo solo agregué esta sentencia al inicio de la página:
response.buffer = true
__________________
I'm gonna start a revolution from my bed...
  #3 (permalink)  
Antiguo 12/07/2006, 21:56
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Igual no sería correcta to lógica. Hacelo al revés y no tenés que hacer uso del response.buffer ni vas a tener problemas con un redirect:

<%
if request.form("nombre") <> "" or request.form("comentarios") <> "" then
// acá tus sentencias
response.redirect "libro.asp?insertado=si"
else
//acá las sentencias si no cumple con la condición
%>
<html>...<body>acá el html necesario</body></html>
<% end if %>
__________________
...___...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:00.