作者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