Enjoy an ad free experience by logging in. Not a member yet? Register.
Results 1 to 2 of 2
02-23-2013, 03:52 AM #1
- Join Date
- Sep 2011
- Thanked 0 Times in 0 Posts
Creating a Table at the click of a button with classic asp
I need your help.
I am trying to validate information, without switching the page (in this case a username, if the username is found, great, populate a textbox and dynamically create a table with the username it it). However, I am getting an error on line 75 that reads:
ADODB.Recordset error '800a0e78' Operation is not allowed when the object is closed. /login.asp, line 75
<% Dim cn,rs Set cn = Server.CreateObject("ADODB.Connection") Set rs = Server.CreateObject("ADODB.recordset") cn.Provider = "Microsoft.Jet.OLEDB.4.0" cn.Open Server.MapPath("login.mdb") 'Default message for the user on the login page msg = "Please login" 'Logout code. This code empties the session variable which holds the user's userID. If Request.QueryString("action") = "logout" Then Session("user_id") = "" msg = "You have been logged out" End If 'Check if the form has been submitted If Request.Form("Submit") = "Test" Then user_name = Request.Form("user_name") user_pass = Request.Form("user_pass") mySQL = "SELECT user_id, user_name, user_pass FROM users WHERE user_name = '" & user_name & "' AND user_pass = '" & user_pass & "'" 'Select the data from the database using the submitted data. rs.Open mySQL, cn 'Check if a match was found. If NOT rs.EOF Then 'Session("user_id") = rsLogin("user_id") 'Response.Redirect("profile.asp") u = rs("user_name") Else 'If a match was not found then output an error. Response.Redirect("login.asp?errmsg=Login failed") End If End If %> <!DOCTYPE html> <html> <head> </head> <body> <form name="form1" id="form1" method="post" action=""> <table width="300" border="0" cellspacing="0" cellpadding="2"> <tr> <td>Username</td> <td><input name="user_name" type="text" id="user_name" /></td> </tr> <tr> <td>Password</td> <td><input name="user_pass" type="password" id="user_pass" /></td> </tr> <tr> <td> </td> <td><input type="submit" name="Submit" value="Test" /></td> </tr> </table> </form> <input id="fileno" value="<%=u%>" type="text"> <% While NOT rs.EOF %> <table width="200" border="1" cellspacing="0" cellpadding="2"> <tr> <th scope="col"><div align="left">username</div></th> </tr> <tr> <td><%=u%></td> </tr> <% rs.MoveNext Wend %> </table> </body> </html>
02-23-2013, 11:31 PM #2
Please, next time TELL US WHAT LINE the error is on, so we don't have to count lines.
Okay, so the error is here:
Did you bother to debug? Did you bother to see if, indeed, the record set *IS* open?Code:While NOT rs.EOF
You really don't think that the ASP engine is making a mistake, do you?
Anyway, look carefully at your code: The only time you OPEN the recordset is after this code:And then only if the condition is true.Code:If Request.Form("Submit") = "Test" Then
*CLEARLY* the first time you reach this page, that will *NOT* be true, so clearly until the <form> is submitted, the recordset WILL NOT BE OPEN.
I'm trying really hard to see what the point of your code is, but I can't. You do a WHILE loop on the recordset, but NO PLACE AT ALL inside the loop do you even TRY to get any values from the recordset. So the whole loop seems utterly pointless.
I really have no idea what you are trying to do here, so I have no idea how to help you.
An optimist sees the glass as half full.
A pessimist sees the glass as half empty.
A realist drinks it no matter how much there is.