HTTP标题错?

oyzq 2000-08-22 02:25:00
加精
我在调试一个社区程序时,有以下错误发生

响应对象 错误 'ASP 0156 : 80004005'
标题错
/temp/login.asp, 行176
HTTP 标题已经写入到 客户浏览器。任何 HTTP 标题的修改必须在写入页内容之前。

请问这种错误是怎么引起的?在windows2000下好象没有,在winnt4.0打pack6的包的web上会出现这种问题,但是有人在其它winnt服务器上也没有出现这个问题!什么是HTTP标题?
...全文
162 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyzq 2000-08-23
  • 打赏
  • 举报
回复
to huntout:
当用游客时,由于直接进入到<% else %>部分,这样在response.redirect 前在客户端也没有任何输出呀!
huntout 2000-08-23
  • 打赏
  • 举报
回复
response.redirect也應該在所有的客戶端輸出之前!
oyzq 2000-08-23
  • 打赏
  • 举报
回复
可是我并我没有用response.cookie的赋值!

就是下面的login.asp用"游客"身份进入时报上面的错误:

login.asp:
<%@ LANGUAGE="VBSCRIPT" %>
<% option explicit%>
<!-- #include file="std.asp" -->
<!-- #include file="connection.asp" -->

<%
'====================================================================================
'设计目的:
'
'现有功能:
'
'维护历史:
' 2000.03.01 Create by Raindot
'
'接受参数:
' userid //用户ID
' password //密码
'出口:
' 成功登录--->FullScreen.HTM
' 登录失败--->重新登录(login.asp)
'函数列表:
'
'
'
'
'======================================================================================
%>

<%IF request("userid")="" THEN %>
<html><title><%=Application("Title")%></title>
<link rel="stylesheet" type="text/css" href="main.css">
<SCRIPT LANGUAGE="JavaScript">
<!--//
function check()
{
if (document.frmaLogin.userid.value.length<1) {
alert("用户名不能为空");
document.frmaLogin.userid.focus();
}
else if (document.frmaLogin.PASSWORD.value.length<1) {
alert("用户密码不能为空");
document.frmaLogin.PASSWORD.focus();
}
else
document.frmaLogin.submit();
}

function GoGuest()
{
document.frmaLogin.userid.value="guest";
document.frmaLogin.PASSWORD.value="1234";
document.frmaLogin.submit();
}

function GoReg()
{
top.frmMain.location.href="adduser.asp"
}

//-->
</SCRIPT>

<body class=MainMenu><center>
<script language="javascript">
<%IF ( session("Msg")=1 ) THEN %>
alert("<% =session("StrMsg")%>");
<% session("StrMsg")=" "
session("msg")=0
END IF %>
</script>
<FORM name=frmaLogin METHOD="POST" ACTION="login.asp">
<table align=center width=120><tr><td>
<TABLE class=BoxTable BORDER=0 cellspacing=0 cellpadding=2 align=center width=120>
<tr class=TopTable>
<TD align=center COLSPAN=2 class=MainDiv10>登录讨论区</TD></tr>
<TR class=MainTable2><TD ALIGN=CENTER>
<a href="javascript:GoGuest()" class=MainA1>游客</a></TD>
<TD align=center class=login>
<a href="javascript:GoReg()" class=MainA1>注册</a>
<a href="..\index.htm" target=_top class=MainA1>返回</a>
</TD></tr>
<TR class=MainTable0>
<TD ALIGN=RIGHT>帐号:</TD>
<TD >
<INPUT TYPE="text" NAME="userid" value='<%=request("uid")%>' SIZE="8" MAXLENGTH="20" >
</TD>
</TR>
<TR class=MainTable0>
<TD ALIGN=RIGHT>密码:</TD>
<TD >
<INPUT TYPE="password" NAME="PASSWORD" SIZE="8" MAXLENGTH="20">
</TD>
<TR class=MainTable0 align=center>
<TD COLSPAN=2 ALIGN=CENTER>
<INPUT TYPE=SUBMIT VALUE='进 入' onClick="check()" class=login>
<br>
</TD>
</TABLE>
</td></tr></table>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--//
<% IF request("uid")="" THEN %>
document.frmaLogin.userid.focus();
<% ELSE %>
document.frmaLogin.PASSWORD.focus();
<% END IF%>
//-->
</SCRIPT>
</center>
</BODY>
</HTML>

<% ELSE
Dim StrSQL,rsUserInfo,StrMsg,blOK,strUserid,strPassword,strRemoteIP,m_I

SET rsUserInfo=Server.CreateObject("ADODB.RECORDSET")
strUserid=request("userid")
strPassword=request("password")
strSQL="select * from UserInfo where userid='"+strUserid+"'"
rsUserInfo.Open strSQL,myconn
blOK=false
IF NOT rsUserInfo.BOF and NOT rsUserInfo.EOF THEN
IF (rsUserInfo("password"))=mistake((strPassword)) THEN
blOK=true
strPassword="****"
ELSE
strMsg="密码错误,请重新输入!"
END IF
Dim rsSysLogin
SET rsSysLogin=Server.CreateObject("ADODB.RECORDSET")
strRemoteIP=Request.ServerVariables("REMOTE_ADDR")
strSQL="insert into syslogin(userid,password,ip,logindate,loginOK) values('"
strSQL=strSQL+strUserid+"','"+strPassword+"','"+strRemoteIP+"',"
strSQL=strSQL+"now(),"+CSTR(blOK)+")"
rsSysLogin.Open StrSQL,myconn
ELSE
StrMsg="用户名错误,请重新输入!"
END IF
IF NOT blOk THEN
session("strMsg")=strMsg
session("msg")=1
response.redirect "login.asp?uid="+strUserid
ELSE
session("userid")=rsUserInfo("userid")
session("nickname")=rsUserInfo("nickname")
session("LastLogin")=rsUserInfo("LastLogin")
IF rsUserInfo("friEND")<>"" THEN
session("friEND")=rsUserInfo("friEND")
END IF
initLogin
session("email")=rsUserInfo("email")
session("uid")=rsUserInfo("id")
session("sign")=strfilter(rsUserInfo("sign")&" ")
session("ibook")=rsUserInfo("ibook")
session("ilogin")=rsUserInfo("ilogin")
session("iPerience")=rsUserInfo("iPerience")
Dim LastLogin,iLogin
LastLogin=rsUserInfo("LastLogin")
iLogin=rsUserInfo("iLogin")
rsUserInfo.close
strSQL="update UserInfo SET ilogin=ilogin+1, iPerience=iPerience+"+cstr(Application("ScoreLogin"))+",LastLogin=now() where userid='"+session("userid")+"'"
rsUserInfo.Open strSQL,myconn
response.redirect "FullScreen.htm"
END IF
myconn.close
END IF
%>
dandycheung 2000-08-23
  • 打赏
  • 举报
回复
具体什么是HTTP Header,非三言两语能讲解清除,具体可以参考HTTP协议。HTTP 头的作用主要是用于通知客户端当前接收的是什么类型的数据。在ASP中,当HTTP标题已定后,即不能再使用response.redirect,上面的代码没有仔细看,但我的看法倾向于huntout,仔细再格式化一下你的代码风格,理清思路,观察程序流程调试吧。
huntout 2000-08-22
  • 打赏
  • 举报
回复
response.cookie的賦值應該在所有的客戶端輸出之前!

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧