作者hdd525 (叉面)
看板Visual_Basic
标题[ASP ] 请问如何利用Session的值判断是否执行某段程式码
时间Sat Sep 6 22:36:34 2008
我想要建立一个注册使用者的页面adduser.asp,
可以输入帐号并且在按下"送出"的时候,
验证使用者是否有输入帐号,
如果有输入,
Session("addOpen") = "open",
跳到CusAdd_p.asp新增帐号,
如果按下"看该帐号是否已有人使用",
Session("addOpen") = ""
则在CusAdd_p.asp验证资料是否有重复的帐号,
验证完後跳回adduser.asp。
现在我的问题是只要按过一次送出,
Session("addOpen") = "open"的值就不会改变了,
所以就连按下"看该帐号是否已有人使用",
也会直接就新增帐号到资料库,
麻烦帮我看一下我的程式有什麽问题,
感激不尽m(_ _)m
*********************************
让使用者填入表单的页面adduser.asp
*********************************
--------------------------
当使用者按下Submit2按钮,
则验证是否有输入帐号,
如没有输入则跳出讯息。
验证通过则进入CusAdd_p.asp
并且设定一个Session
--------------------------
<script language="javascript">
function CheckArea()
{
var theForm = document.addForm;
if ( theForm.txtLoginID.value == "" )
{
alert("帐号不得为空白");
theForm.txtLoginID.focus();
return;
}
<% Session("addOpen") = "open" %>
theForm.submit();
}
</script>
<FORM NAME="addForm" METHOD="post" ACTION="CusAdd_p.asp" ID="Form">
<table>
<tr>
<th>帐号</th>
<td>
<input name="txtLoginID" type="text" CLASS="form" ID="txtLoginID" value="">
<input name="btnChkLoginID" type="submit" CLASS="form" ID="btnSubmit" value="看该帐号是否已有人使用">
</td>
</tr>
</table>
-----------------------------------
点下送出按钮进行资料验证,
并且设定Session("addOpen") = "open"
-----------------------------------
<input name=btnSubmit type=button CLASS="form" ID="Submit2" onClick="CheckArea();" value=送出>
</FORM>
****************************
CusAdd_p.asp
验证帐号是否已存在於资料库,
验证通过则新增帐号至资料表,
(省略资料库连结的程式码)
(省略pfShowMessage()程式码)
****************************
<%
----------------------------------
如果Session("addOpen") 不是 "open"
则判断帐号是否已存在资料库,
是"open"就新增帐号。
----------------------------------
If Session("addOpen") <> "open" then
Set oRS = oConn.Execute ( sSQL )
If Not oRS.EOF Then
Call pfShowMessage("帐号已存在,请重新输入")
Response.End
Else
Call pfShowMessage("帐号 " & sLoginID & " 目前尚无人使用")
Response.End
oRS.Close
End If
Else
Set oRS = Server.CreateObject("ADODB.RecordSet")
oRS.Open "alantest" , oConn, 1, 3
id = request.Form("txtLoginID")
oRS.AddNew
oRS("id")= id
oRS.Update
oRS.Close
response.Write("帐号新增完成")
Session("addOpen") = ""
End If
%>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.245.169
1F:→ passli:Session("addOpen") = "open" 写在javascript那边会动作吗? 09/07 18:33
2F:→ hdd525:那如果我想要在按下送出时执行Session("addOpen") = "open" 09/07 18:55
3F:→ hdd525:请问该写在哪边呢?可以给个方向或关键字吗?谢谢 09/07 18:57
4F:→ passli:你的逻辑这样怪怪的,每次按button之後session = "open" 09/07 21:59
5F:→ passli:就变成只会去新增帐号,并不会跑检查那一段。 09/07 22:00
6F:→ hdd525:我就是想要每次按button btnSubmit就直接新增帐号, 09/07 22:30
7F:→ hdd525:按"btnChkLoginID"时才跑检查那段。 09/07 22:30
8F:→ hdd525:要让btnSubmit按下也检查帐号只要改一下If的位置, 09/07 22:30
9F:→ hdd525:可是我现在问题是出在更前面.... 09/07 22:30
10F:→ hdd525:目前问题出在不知如何按下btnSubmit让Session = "open" 09/07 22:31