[ASP ] 請問如何利用Session的值判斷是否執行某段程式碼

看板Visual_Basic作者 (叉麵)時間17年前 (2008/09/06 22:36), 編輯推噓0(0010)
留言10則, 2人參與, 最新討論串1/1
我想要建立一個註冊使用者的頁面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

09/07 18:33, , 1F
Session("addOpen") = "open" 寫在javascript那邊會動作嗎?
09/07 18:33, 1F

09/07 18:55, , 2F
那如果我想要在按下送出時執行Session("addOpen") = "open"
09/07 18:55, 2F

09/07 18:57, , 3F
請問該寫在哪邊呢?可以給個方向或關鍵字嗎?謝謝
09/07 18:57, 3F

09/07 21:59, , 4F
你的邏輯這樣怪怪的,每次按button之後session = "open"
09/07 21:59, 4F

09/07 22:00, , 5F
就變成只會去新增帳號,並不會跑檢查那一段。
09/07 22:00, 5F

09/07 22:30, , 6F
我就是想要每次按button btnSubmit就直接新增帳號,
09/07 22:30, 6F

09/07 22:30, , 7F
按"btnChkLoginID"時才跑檢查那段。
09/07 22:30, 7F

09/07 22:30, , 8F
要讓btnSubmit按下也檢查帳號只要改一下If的位置,
09/07 22:30, 8F

09/07 22:30, , 9F
可是我現在問題是出在更前面....
09/07 22:30, 9F

09/07 22:31, , 10F
目前問題出在不知如何按下btnSubmit讓Session = "open"
09/07 22:31, 10F
文章代碼(AID): #18mfLpQg (Visual_Basic)