23. maj 2010 - 00:02Der er
16 kommentarer og 1 løsning
Problemer med server.mappath i login - asp
Hej.
Jeg kan ikke få min login til at fungere. Jeg benytter nedentående kode, men jeg får fejlside med bla. fejlen
"Error Type: ADODB.Connection.1 (0x800A0BB9) The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another. /Login.asp, line 12"
Kan det have noget at gøre med, at der findes "ø" i internetadressen? Har prøvet mange varianter af henvisningen til mdb-filen....
Her er koden <% ' Hvis der er blevet trykket på knappen "Login" If Request.Form("Action") = "Login" Then ' Her forberedes de indtastede værdier til validering strUID = Trim(Replace(Request.Form("Brugernavn"),"'","")) strPWD = Trim(Replace(Request.Form("Adgangskode"),"'",""))
' Hvis der er skrevet noget i både brugernavn og adgangskode If Len(strUID) > 0 And Len(strPWD) > 0 Then
' DSNLess forbindelse til databasen Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/db/BrugerData.mdb")
' Opbygning af SQL streng strSQL = "SELECT UserID FROM Logins"&_ " WHERE (Username = '" & strUID & "')"&_ " AND (Password = '" & strPWD & "')"
Set rs = myConn.Execute(strSQL) If Not (rs.BOF Or rs.EOF) Then ' Hvis brugeren fandtes i databasen intUID = rs("UserID") Else ' Hvis brugeren ikke fandtes i databasen strERR = "Du blev ikke godkendt af systemet" End If
' Rydder op i vores connection objekt myConn.Close Set myConn = Nothing
If Len(intUID) Then ' Hvis variablen intUID indeholder en værdi sættes denne i sessionen "UserID" og brugeren bliver sendt videre Session("UserID") = intUID Response.Redirect("beskyttet.asp") End If Else ' Hvis der ikke var angivet brugernavn og adgangskode strErr = "Du skal skrive både brugernavn og adgangskode" End If
If Len(strErr) > 0 Then ' Her laves fejlmeddelsen om til rød skrift strErr = "<p><font color=red>" & strErr & "</font></p>" End If End If %> <html><head> <title>Login script</title> </head><body>
Er ret sikker på at det enten er den med Set myconn eller myConn.Open hvor databasehenvisningen ligger. Men jeg er ikke sikker. Tæller alle linier som 'line' ?
Hej. Bruger dreamweaver cs3 -men der er ingen linietal på, synes ellers der har været.
Men jeg er sikker på, det er linien myConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/db/BrugerData.mdb") for hvis jeg ændrer til "../db/BrugerData.mdb" får jeg nedenstående error, hvor det også er lini 12, der henvises ti
Error Type: Server object, ASP 0175 (0x80004005) The '..' characters are not allowed in the Path parameter for the MapPath method. /Login.asp, line 12
Nu fik jeg slået linie-tallet til - her er lini 12 altså godt nok linien ovenover, dvs. Set myConn = Server.CreateObject("ADODB.Connection") - men det kan jeg ikke få til at passe med ovenstående...
Umiddelbart lyder det som om din webserver er indstillet til ikke at tillade "parent paths". Dette indstilles i IIS administrationen på serveren (eller din egen maskine, hvis du kører localhost).
Jeg kører det ved i123.dk. Desværre kan jeg ikke se, hvor man kan indstille ovenstående. Hvis jeg giver dig login osv, har du så evt. mod på at prøve det? Alternativt, kan jeg så henvise uden at skulle tillade "parent paths"?
@Soze - har netop prøvet med din og får følgende fejl: Error Type: ADODB.Connection.1 (0x80004005) SQLState: IM002 Native Error Code: 0 [DataDirect][ODBC lib] Data source name not found and no default driver specified /Login.asp, line 12
nej - Det er MS der har lavet ASP og det er MS ASP burde køre på, men hos dit webhotel benytter de mindste produkter Apache og et ASP "kopi" produkt og med den opsætning kan du ikke køre Access.
Det er ikke din ASP som sådan der fejler - du forsøger bare at benytte en mulighed du ikke har tilgængelig. Skift til et MS-produkt eller benyt MySQL som database i stedet.
jeg kender ikke udbydere - men som artiklen jeg linkede til i #11 antyder skal du formentlig skifte til et andet produkt så det kræver formentlig kontakt til webhotellet.
MySQL er en database som alle andre så den er bestemt til at arbejde med - det kræver bare lidt tilvænning da userinterface og datatyper er lidt anderledes ligesom der også er lidt forskelle i SQL-syntaks.
Ok. Jeg har nu fundet et andet sted, hvor jeg har større overblik end i kontrolpanelet, og jeg kan se, jeg kun har site 1. Der skal som du skriver 3 eller 5 til at bruge accessdatabaser, så jeg må opgradere før jeg går videre.
Tusinde tak for hjælpen!!!
Synes godt om
Ny brugerNybegynder
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.