注册 登录
编程论坛 ASP技术论坛

[求助]代码查错

TZTJ 发布于 2009-08-17 11:34, 715 次点击
请高手分析下面代码有何错误呢?
<html>
<% if time <#12:00:00# and time>=#00:00:00# then
bgc="silver"
else if time <#19:00:00# and time >=#12:00:00# then
bcg="navy"
else
bgc="red"
end if
%>
<body bgcolor="< % =bgc % >">
<Font Color="Green">
<% If Time <#12:00:00# And Time>=#00:00:00# Then %>
早上好,今天天气不赖啊 !
<% ElseIf Time <#19:00:00# And Time >= #12:00:00# Then %>
下午好 !
<% Else %>
哈喽 ! 今晚你有没有去 IRC 聊天 !
<% End if %>
</Font>
</body>
</html>
13 回复
#2
yms1232009-08-17 13:49
时间数据为特殊变量不能直接使用
time <#12:00:00#
这样的<或>等这样的逻辑判断符号来进行比较。
对时间比较ASP里可以使用DateAdd或DateDiff这两种时间函数来比较。
http://baike.baidu.com/view/674203.htm
DateAdd的函数解释

http://baike.baidu.com/view/674204.htm
DateDiff的函数解释
#3
myosotis2009-08-17 16:26
if 表达式 then
    对应结果
elseif 表达式 then
    对应结果
end if

其中elseif 不能写成else if,这样会出错
#4
jingjing3162009-08-17 19:10
编程时有if就要有end if。上面的程序缺少两个end if。if和end if必须成对出现。
<html>
<% if time <#12:00:00# and time>=#00:00:00# then
bgc="silver"
else if time <#19:00:00# and time >=#12:00:00# then
bcg="navy"
else
bgc="red"
end if
end if
%>
<body bgcolor="< % =bgc % >">
<Font Color="Green">
<% If Time <#12:00:00# And Time>=#00:00:00# Then %>
早上好,今天天气不赖啊 !
<% ElseIf Time <#19:00:00# And Time >= #12:00:00# Then %>
下午好 !
<% Else %>
哈喽 ! 今晚你有没有去 IRC 聊天 !
<% End if %>
<% End if %>
</Font>
</body>
</html>

[ 本帖最后由 jingjing316 于 2009-8-17 19:11 编辑 ]
#5
TZTJ2009-08-17 23:45
首先感谢各位高手的指点!由于本人刚学ASP,许多东西都不懂,都是模仿网上学习的.我想请教各位高手,编写ASP代码有何要求呢?为什么把网上提供的代码复制去运行,根本不能运行,但改为手写又可以呢?对于上面的代码,我在dreamweaver检验它,错误出在"<body bgcolor="< % =bgc % >"> ",其他都没有说到有错.我就把这行代码删去试运行,它可以运行的.与高手们说的让我有一点乱.
#6
yms1232009-08-18 10:37
网上的代码在发表时会被网页编码,因此不能复制过来直接运行,而且编程是需要有自己的思想,任何东西只能是参考。
#7
TZTJ2009-08-18 12:14
ASP代码严格大小写吗?编写ASP代码与其他编程一样有严格的格式吗?即<p> </P>
<form>...</form> <font>....</font> if....endif 如果按照3楼、4楼去该,好象反而不能运行。使我陷入一团谜团。请问高手们,究竟怎么样呢?
#8
jingjing3162009-08-19 07:35
楼主,自己琢磨吧,不过我是实验成功了才告诉你的。
<% if time <#12:00:00# and time>=#00:00:00# then
bgc="silver"
else if time <#19:00:00# and time >=#12:00:00# then
bcg="navy"
else
bgc="red"
end if
end if
%>
这段程序是为了实现不同时间段,背景显示不同的颜色,在上午12:00以前都是银色,12:00-19:00为灰色,其他时间为红色。
<% If Time <#12:00:00# And Time>=#00:00:00# Then %>
早上好,今天天气不赖啊 !
<% Else If Time <#19:00:00# And Time >= #12:00:00# Then %>
下午好 !
<% Else %>
哈喽 ! 今晚你有没有去 IRC 聊天 !
<% End if %>
<% End if %>
这段代码为了显示不同时间出现不同的问候语,12:00以前都是“早上好,今天天气不赖啊 !  
”,12:00-19:00,显示“下午好 !  ”,其他时间显示“哈喽 ! 今晚你有没有去 IRC 聊天 !  


<body bgcolor="< % =bgc % >">
这句是为了把背景色赋值为上面定义的颜色。
#9
TZTJ2009-08-19 10:22
我是懂得代码的意思,主要是代码为什么不能在浏览器正确显示.
#10
jingjing3162009-08-19 11:05
哦,这个样子啊!你用什么测试呢?IIS?我用IIs测试成功啊。还用了babyweb测试也成功啊。建议你用editplus查看程序,用IIS测试,出现错误时,会提示哪个文件第几行错误,然后用editplus查看,里面显示行号,很方便。我又把你上面的代码,粘了一遍,发现了个问题你的<body bgcolor="<% =bgc %>">这一句有错误。<和%之间不要有空格。

[ 本帖最后由 jingjing316 于 2009-8-19 11:11 编辑 ]
#11
jingjing3162009-08-19 11:19
同时如果用else if 一定要有对应的end if。如果用elseif则不需要end if。你上面的程序把第四行的else if 改成elseif,把 < 和 %间的空格去掉,% 和>的空格去掉,就能实现了。
若果第四行的else  if 不改,就需要添个end if。
#12
TZTJ2009-08-19 12:20
首先感谢jingjing361热心帮助!我先用本机上的IIS测试,总是用不得,弹出一个表单,需要填上用户和密码,本来我已经设置诺名访问.但还是不能测试.后来我把它放到一个免费ASP空间测试.如果单纯是这样的代码还可以:
<html>
<body>
<Font Color="green">
<% If Time <#12:00:00# And Time>=#00:00:00# Then %>
早上好!今天的天气不赖啊!
<% ElseIf Time <#19:00:00# And Time >= #12:00:00# Then %>
下午好 !
<% Else %>
哈喽 ! 今晚你有没有去 IRC 聊天 !
<% End if %>
</Font>
</body>
</html>
如果再加其他代码就不成了啦.总是显示http 500 内部程序错误 :比如:
<html>
<%  
if time <#12:00:00# and time>=#00:00:00# then
bgc="silver"
Elseif time<#19:00:00# and time>=#12:00:00# then
bcg="navy"
else
bgc="red"
end if
end if
%>
<body  bgcolor="<% =bgc %>">
<font color="Green">
<% If Time <#12:00:00# And Time>=#00:00:00# Then %>
欢迎光临我的主页,请填写以下信息 :
<form method="post" action="test1.asp">
<p>
First name: <input name="fname" size="48">
</p>
<p>
Last name: <input name="lname" size="48">
</p>
<p>
Title: <input name="title" type=redio value="mr">Mr.
<input name="title" type=redio value="ms">MS.
</p>
<p>
<input type=submit>
<input type=reset>
</p>
</form>
<%
title=request.form("title")
if title="mr"then
%>
欢迎您 Mr.
<% elseif title="ms"then %>
欢迎您 Ms.<%=request.form("fname")% >
<% else %>
<b><font color=blue>
欢迎您 <% =request.form("fname")&" "&request.form("lname")%>
</font>
</b>
<% end if %>
<% ElseIf Time <#19:00:00# And Time >= #12:00:00# Then %>
下午好 !
<% Else %>
哈喽 ! 今晚你有没有去 IRC 聊天 !
<% end if %>
<% end if %>
</font>
</body>
</html>
我查了很久,也弄不清楚是什么原因,请高手们指点
#13
jingjing3162009-08-20 10:33
如果再加其他代码就不成了啦.总是显示http 500 内部程序错误 :比如: 以下的程序,第五行用了elseif,九、十两行的end if 可以去掉一个。单选扭type="radio"而不是”redio“,
<%,<%=,%>之间都不要有空格,就是这样规定的,你写成% >,< %,< % =,肯定会报错。
#14
TZTJ2009-08-20 11:55
再次感谢jingjing361的指点.为什么我在dreamweave验证这些代码都没有发现错误呢?难道用dreamweave做ASP网页不行吗?
1