Avatar billede swing Nybegynder
23. maj 2006 - 10:25 Der 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
%>

Min databaseadgang:
<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' DesigntimeType="ADO"
' HTTP="false"
' Catalog=""
' Schema=""

Set MM_conn_STRING = Server.CreateObject("ADODB.Connection")
MM_conn_STRING.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/markedsplads/sortgratis.mdb")
%>
Avatar billede softspot Forsker
23. maj 2006 - 10:28 #1
Den får man ofte når et kolonnenavn staves forkert i din SQL-sætning.
Avatar billede thesurfer Nybegynder
23. maj 2006 - 10:43 #2
Det plejer at betyde, at et eller flere felter (f.eks. fra din form) er tomme.
Avatar billede thesurfer Nybegynder
23. maj 2006 - 10:45 #3
..du får en hel anden fejl, hvis det er en kolonnen der er stavet forkert..
Avatar billede thesurfer Nybegynder
23. maj 2006 - 10:45 #4
..mener jeg.. :-)
Avatar billede thesurfer Nybegynder
23. maj 2006 - 10:46 #5
Hmm.. det er vel typisk ved en INSERT-sætning..
Avatar billede swing Nybegynder
23. maj 2006 - 10:52 #6
Jeg har tjekket stavningen og den passer så vidt jeg kan se. Min form er her:

<form name="form1" method="POST" action="<%=MM_LoginAction%>">
                  <p><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Brugernavn<br>
                    <input name="itembrugernavn" type="text" id="itembrugernavn" size="15">
                    <br>
                    Password </strong> <strong><br>
                    <input name="itempassword" type="password" id="itempassword" size="15">
                    <br>
                    <a href="glemt_password.asp">Glemt password?</a></strong></font></p>
                  <p> <font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>
                    <input type="submit" name="Submit" value="Login">
                    </strong></font> </p>
                </form>
Avatar billede softspot Forsker
23. maj 2006 - 10:52 #7
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 :)
Avatar billede softspot Forsker
23. maj 2006 - 10:54 #8
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)?
Avatar billede swing Nybegynder
23. maj 2006 - 10:58 #9
hmm nej ingen accesslevel kolonne i tabellen
Avatar billede softspot Forsker
23. maj 2006 - 11:01 #10
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 :)).
Avatar billede swing Nybegynder
23. maj 2006 - 11:12 #11
jeg tror jeg har haft en ide om at "alm." brugere skal kunne oprette osv. En anden bruger skal være admin....

Jeg må vist begynde forfra :-) Smidt et svar for din ulejlighed
Avatar billede softspot Forsker
23. maj 2006 - 11:18 #12
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.
Avatar billede swing Nybegynder
23. maj 2006 - 11:21 #13
Ok tak for hjælpen
Avatar billede softspot Forsker
23. maj 2006 - 11:23 #14
Velbekomme og tak for point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester