江西艺术类重点高中:hidden的问题

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 03:48:25
<%@ Language=VBScript %>
<%
Response.Buffer=true ' 设置输出缓存,用于显示不同页面。
On error resume next ' 忽略程序出错部分
If Request.ServerVariables("Request_Method")="GET" then
%>

<form method="POST" action="chat.asp"><p>
<input type="text" name="nick" size="20" value="nick" style="background-color: rgb(192,192,192)"><br>
<input type="submit" value=" 进入聊天室 " name="B1" style="color: rgb(255,255,0); font-size: 9pt; background-color: rgb(0,128,128)">
<p><input type="hidden" name="log" size="20" value="1"><br></p>
</form>

<%
Response.End ' 结束程序的处理
Else
Response.clear ' 清空缓存中的内容
dim talk
If Request.Form("nick")<>"" then
' 判断客户是是否在聊天界面中
Session("nick")=Request.Form("nick")
End If
%>

<form method="POST" action="chat.asp" name=form1> <p><%=Session("nick")%> 说话:<input type="text" name="talk" size="50"><br>
<input type="submit" value=" 提交 " name="B1">
<input type="reset" value=" 取消 " name="B2"></p>
</form>
<A HREF="/asptest/shusheng/chat.asp"> 离开 </a><br><br>

<%
If Request.Form("log")<>1 then
If trim(Request.Form("talk"))="" then
' 判断用户是否没有输入任何内容
talk=Session("nick")&" 沉默是金。"
Else
talk=trim(Request.Form("talk"))
' 去掉字符后的空格
End If

Application.lock
Application("show")="<table border='0' cellpadding='0' cellspacing='0' width='85%'><tr><td width='100%' bgcolor='#C0C0C0'></td></tr><tr><td width='100%'><font color='#0000FF'> 来自 "&Request.ServerVariables("remote_addr")&" 的 "&Session("nick")&time&" 说:</font>"&talk&"</td></tr><tr><td width='100%' bgcolor='#C0C0C0'></td></tr></table><br>"&Application("show")
Application.UnLock

Response.Write Application("show")
End If
End If
%>

这是个聊天室的代码
请大家看一下这段代码 在第12行的时候有一个表单元素hidden 他的内容是1
在整个代码中 没有给这个元素第2次赋值
可是后来有句If Request.Form("log")<>1 then
就是说当这个表单元素不等于1的时候执行下面的输出

这就奇怪了 hidden明明就等于1呀! 可是为什么还是能执行下面的输出语句呢??????

拜托各位给个答案吧! 真的是想了好久都不明白为什么要判断Request.Form("log")<>1 而且这个判断后面的then还能正常执行~~~
if Request.Form("log")<>1 log明明就是等于1 所以这个判断肯定就返回falsh 可为什么它后面的then后面的语句还能正常执行呢?!!!!!!!!!!!!!!!
你好
我还是不理解 我是这样认为的

当第一个表单提交的时候 log=1已经跟nick=(用户起的名) 一起在内存里了
当后来的if Request.Form("log")<>1 的时候 这个判断应该是不成立呀 如果成立的话那说明log=1没有放在内存里
可是同样是提交表单 用户名nick都能被内存记住还赋了值 Session("nick")=Request.Form("nick")

那为什么log这个变量不能被内存记住呢?

谢谢这位朋友了 我真的很不明白 希望你能帮我解释一下

这个程序很简单。开始不是有个IF吗??判断是否登入了聊天室,如果没登入才设置LOG=1,登入后判断就成立了,可以输出内容。

学多长时间了啊?