大家请过来看看 我急着完成作业 可报错!--在线等
我用ASP做的新闻发布系统 ,代码绝对没错,因为经过几天测试发现当 我从后台更新完一次内容是 再返回首页 就报错:
本页无法显示
试图访问的网页出现问题,无法显示。
--------------------------------------------------------------------------------
请尝试以下方法:
单击 刷新按钮或者梢候再试。
打开 localhost 主页,然后查找与所需信息相关的链接。
HTTP 500.100 - 内部服务器错误 - ASP 错误
Internet 信息服务
--------------------------------------------------------------------------------
技术信息(适用于支持人员)
错误类型:
ADODB.Field (0x80020009)
/index.asp
浏览器类型:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
页:
GET /index.asp
时间:
2002年12月5日, 1:36:34
详细信息:
Microsoft 支持
----------------------------
上次也出现过这种情况,难为了我一天 后来我从建了一个数据库里的一个表首页就可以打开,不报错了,源代码一点不用改动。
我今天打算往表里填写有意仪的内容 就更新了网站 结果在打开首页就出现上述错误。我的网站共3个表,我试着只显示其中一个表的内容就可以 而且是只那个一个可以其他的都不行,
我想问这是什么原因引起的,
错误提示说是 HTTP 500.100 - 内部服务器错误 - ASP 错误 是我的iis有问题 还是我的access坏了?
还是我的代码真的有问题?可是在我没有更新内容之前是完全没有问题的压!!!!
大家谁知道请帮帮我!!
我太无助了 现在只想重装系统了!!!!!!!
问题点数:40、回复次数:11Top
1 楼yaca(神采飞扬)回复于 2002-12-05 02:01:02 得分 0
不用啊,
是你的程序问题。
你把你代码贴出来看看。Top
2 楼yaca(神采飞扬)回复于 2002-12-05 02:07:01 得分 0
我知道了,肯定是你输入了'、"(单引号,双引号)等字符,而你的程序又没有加字符判断,所以出错的。Top
3 楼itcoco(椰子)回复于 2002-12-05 02:14:11 得分 0
楼上的 你说的对么?我感觉不用把 因为我只是显示标题和新闻的时间而已
下边是我的代码
<%set rs=server.createobject("adodb.recordset")
sql="select * from cj order by time desc"
rs.open sql,cn,3,3%>
<%if not rs.eof then%>
<%dim i,max
if rs.recordcount<8 then
max=rs.recordcount
else max=8
end if%>
<%for i=1 to max
title=trim(rs("title"))
ctitle=left(title,20)
%>
<tr>
<td width="70%" height="12"><font color="#3399CC" size="1">□</font><A
href="showrm.asp"?id=<%=rs("id")%>
target=_blank><%=ctitle%></A> ...</td>
</tr>
<%rs.movenext
next%>
<%else%>
<tr>
<td height="14"> 还没有新闻! </td>
</tr>
<%end if%>Top
4 楼yaca(神采飞扬)回复于 2002-12-05 02:30:35 得分 40
ctitle=left(title,20)
这里错,你还没判断title的长度呢。怎么能随便就截取呢?
还有,假如别人输入英文,你这个截取前20个字符就变得很短了,很不好看。
用我的。
ctitle=strLeft(title,18)
<%
Function strLength(varstr)
If varstr<>"" Then
intLen = Len(varstr)
For i = 1 To Len(varstr)
varchar = Mid(varstr, i, 1)
varasc = Asc(varchar)
If varasc < 0 Then
varasc = varasc + 65535
End If
If varasc > 255 Then
intLen = intLen + 1
End If
Next
strLength = intLen
End If
End Function
%>
<%
Function strLeft(varstr,intlength)
If varstr<>"" Then
intLen = intlength
For i = 1 To Len(varstr)
varchar = Mid(varstr, i, 1)
varasc = Asc(varchar)
If varasc < 0 Then
varasc = varasc + 65535
End If
vstr = vstr&varchar
If varasc > 255 Then
intLen = intLen - 2
Else
intLen = intLen - 1
End If
If intLen < 1 Then
Exit For
End If
Next
strLeft = vstr
End If
End Function
%>
<%
Function sublen(exp,intlen)
if strLength(exp)>intlen+3 then
sublen=strLeft(exp,intlen)&"..."
else
sublen=exp
end if
end Function
%>
Top
5 楼itcoco(椰子)回复于 2002-12-05 02:37:55 得分 0
楼上想的真周道
除此之外 我的代码还有什么毛病么Top
6 楼yaca(神采飞扬)回复于 2002-12-05 02:38:05 得分 0
小伙子,问题解决没有?我要sleep了。马上就要asleep了。
now(), sleeping.......Top
7 楼yaca(神采飞扬)回复于 2002-12-05 02:40:22 得分 0
估计就是这里错,
其他的看不出来了,我要调试才知道的。Top
8 楼itcoco(椰子)回复于 2002-12-05 02:55:18 得分 0
多谢Top
9 楼yaca(神采飞扬)回复于 2002-12-05 03:06:09 得分 0
不谢,送分过来就OK了。
早点睡,别做太晚了,身体重要啊。
小伙子,等你到我这个年龄,你就知道了的。
Top
10 楼itcoco(椰子)回复于 2002-12-05 13:57:18 得分 0
楼上的 我觉得还不是"(单引号,双引号)等字符,而没有加字符判断的原因,
我把代码来会复制几遍 弄弄表什么的现在基本上还是原来的代码 就好了
不过时不时还报错Top
11 楼itcoco(椰子)回复于 2002-12-05 13:59:10 得分 0
给你了20分 先不节贴Top




