23. maj 2006 - 10:25Der er
13 kommentarer og 1 løsning
Fejl i loginside Too few parameters. Expected 1
Hej eksperter
Jeg har en login side som fejler når jeg prøver at logge ind. Håber i kan hjælpe!
Jeg får følgende fejl: Microsoft OLE DB Provider for ODBC Drivers error '80040e10'
[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
/markedsplads/login.asp, line 22
Koden i min loginside: <%@LANGUAGE="VBSCRIPT"%> <!--#include file="Connections/conn.asp" --> <!--#include file="style.inc" --> <% ' *** Validate request to log in to this site. MM_LoginAction = Request.ServerVariables("URL") If Request.QueryString<>"" Then MM_LoginAction = MM_LoginAction + "?" + Request.QueryString MM_valUsername=CStr(Request.Form("itembrugernavn")) If MM_valUsername <> "" Then MM_fldUserAuthorization="accesslevel" MM_redirectLoginSuccess="bruger.asp" MM_redirectLoginFailed="loginfail.asp" MM_flag="ADODB.Recordset" set MM_rsUser = Server.CreateObject(MM_flag) MM_rsUser.ActiveConnection = MM_conn_STRING MM_rsUser.Source = "SELECT itembrugernavn, itempassword" If MM_fldUserAuthorization <> "" Then MM_rsUser.Source = MM_rsUser.Source & "," & MM_fldUserAuthorization MM_rsUser.Source = MM_rsUser.Source & " FROM itembruger WHERE itembrugernavn='" & Replace(MM_valUsername,"'","''") &"' AND itempassword='" & Replace(Request.Form("itempassword"),"'","''") & "'" MM_rsUser.CursorType = 0 MM_rsUser.CursorLocation = 2 MM_rsUser.LockType = 3 MM_rsUser.Open If Not MM_rsUser.EOF Or Not MM_rsUser.BOF Then ' username and password match - this is a valid user Session("MM_Username") = MM_valUsername If (MM_fldUserAuthorization <> "") Then Session("MM_UserAuthorization") = CStr(MM_rsUser.Fields.Item(MM_fldUserAuthorization).Value) Else Session("MM_UserAuthorization") = "" End If if CStr(Request.QueryString("accessdenied")) <> "" And true Then MM_redirectLoginSuccess = Request.QueryString("accessdenied") End If MM_rsUser.Close Response.Redirect(MM_redirectLoginSuccess) End If MM_rsUser.Close Response.Redirect(MM_redirectLoginFailed) End If %>
Jeg er overbevist om (dvs. ikke 100% sikker) at selv på forspørgsler kan man angive parametre og at access opfatter ikke eksisterende kolonner i en forspørgsel som en parameter. Så derfor fastholder jeg stadig min påstand :)
Ja, det kan være du har de to kolonner i din database, men har du også en der hedder accesslevel (den der ligger i variablen MM_fldUserAuthorization og som bliver plastret på din SQL-sætning)?
OK, så enten skal du slette indholdet af den førnævnte variabel eller finde ud af hvad den der accesslevel skal bruges til (jeg ville umiddelbart mene at den første løsning er det du skal gå efter siden du ikke har den med i dit databasedesign :)).
Ja, jeg kan ikke helt gennemskue om det er smartest at lægge rettigheden på elementet eller på brugeren/gruppen, men umiddelbart ville jeg selv placere den ifm. brugeren eller i det mindste i en relation mellem brugeren og det enkelte element. Det vil give dig mulighed for at lave differentieret rettighedsstyring på element-niveau, hvis det er relevant.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.