主题:  回复留言时出错?请高手帮忙。

我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
#12004/10/10 15:31:39
在回复留言时显示出错

错误类型:
Microsoft VBScript 运行时错误 (0x800A005E)
无效使用 Null: 'Replace'
/guestbook/admin.asp, 第 521 行

浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

网页:
GET /guestbook/admin.asp

时间:
2004年10月10日, 15:07:37

这是在给第二条留言回复是出现的,但是在回复第一条留言时就没出现错误啊!?



我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
#22004/10/10 15:44:35
在补充一下,虽然出错是出错了,但是打开数据库一看数据好象已经都存到用于显示回复内容的数据表中去了啊!?
那怎么还出错?



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#32004/10/10 15:47:47
无效使用 Null: 'Replace'

应该可以插入数据,只是你表现的时候REPLACE可能有问题,把那个函数贴出来看看。


难人一个……

蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#42004/10/10 15:51:42
Null值不能用Replace替换,可用IsNull()先验证一下。


非常大鱼

我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
#52004/10/10 19:37:47
什么函数??我也不知道啊~~~~~~~~~~ 我只知道现在哪个页面(除了登陆页)都打不开了。晕~~~~~~~~



沉默是金

职务:普通成员
等级:6
金币:11.2
发贴:4357
#62004/10/11 9:09:35
就是那一段REPLACE的代码,注释掉再看能不能打开


难人一个……

我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
#72004/10/11 23:44:42
还是不知道。。。。
不过,如果不回复留言就什么问题也没有(也就是说用于存储回复留言内容的数据表如果为空就没问题)!只要一回复留言然后就出错!
不知道是不是由于没有给显示回复留言内容的记录集添加“如果记录集为空则显示”服务器行为造成的呢??盼高手指点!



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#82004/10/12 9:01:50
当数据为null时无法使用Replace
你先找到521行的Replace



我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
#92004/10/13 17:24:42
下面是错误处的代码,希望高手指教!

519——<SCRIPT RUNAT=SERVER LANGUAGE=VBSCRIPT>    
520——function DoWhiteSpace(str)            
521—— DoWhiteSpace = Replace((Replace(str, vbCrlf, "<br>")), chr(32)&chr(32), "&nbsp;&nbsp;")            
522——End Function                    
523——</SCRIPT>                    
524——<html>
525——<head>
。。。。。。



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#102004/10/13 20:25:59
function DoWhiteSpace(str)
if isnull(str) then
DoWhiteSpace=""
else
DoWhiteSpace = Replace((Replace(str, vbCrlf, "<br>")), chr(32)&chr(32), "&nbsp;&nbsp;")
end if
End Function



我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
#112004/10/15 22:22:26
高手啊!又遇到问题了!加了您给的那段代码,虽然错误是没有了也可以正常浏览,但是没法让站长回复一栏在没有回复内容时隐藏起来啊?该怎么作呢?

也就是说,我作了一个讨论区式的留言板,数据库中用了2个表,一个main表(存储留言信息)、一个re表(存储站长回复信息)。其中re表中设有rid(自动编号)、id(关联)、ricon(回复头像)、rname(回复名字)、re(回复内容)、rdate几个字段,并设置了数据库关系(但没制作数据库查询对象)。和讨论区差不多,我要求是在留言板的主页index.asp上就显示出每条留言的内容及其回复(没有回复的则不显示站长回复一栏),只不过没有给站长回复一栏应用重复域行为。管理页面admin.asp是由index.asp另存为得到的,作了一些修改,加上了“编辑”“回复”“删除”。现在的问题是,编辑、删除什么的都没有问题,回复经过加了allinhands斑竹给的代码错误也消失了,但就是不知道该如何让站长回复一栏隐藏起来!哎。。。。急啊



蓝鲸

职务:版主
等级:5
金币:42.1
发贴:2614
#122004/10/15 23:24:29
具体是用身份验证,站长附录后,设Session("UserName")值,或用Cookies验证也可,如果Session或Cookie值符合站长身份,就显示,否则就陷藏。其实,做起来并不难,如果有些编程的基本功的话,做起来还是比较容易的。要点是对Session和Cookie要掌握。

伪代码如下:
If Session("UserName") = "Admin" Then
    显示回复内容
End If


非常大鱼

缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#132004/10/16 1:51:28
楼主的意思是:
?

if len(Rs("replay"))<>0 then Response.write(rs("reply")) end if



我哭了

职务:普通成员
等级:1
金币:0.0
发贴:148
#142004/10/16 10:41:21
哎!问题是我是第一次作,什么也不会也没有学过,完全是自学。

而且主要的是站长回复一栏它不光是一个字段reply,而是包括了好几个字段啊!要求没有回复内容时,不光是回复内容的字段不显示,其它的字段或是说整个的表格都隐藏起来。要是一个字段的话当然也不用这么费劲了,早就搞定了。



缺缺

职务:管理员
等级:8
金币:41.0
发贴:9620
#152004/10/16 12:39:30
那就把判断加在表格外面,一样的道理