Avatar billede masteraaen Novice
23. maj 2010 - 00:02 Der 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>

<form method="POST" action="Login.asp">
<p><font size="4">Angiv brugernavn og adgangskode</font></p><%=strErr%>
<table border="0">
<tr>
<td width="50%">Brugernavn:</td>
<td width="50%"><input type="text" name="Brugernavn" size="20"> (test)</td>
</tr>
<tr>
<td width="50%">Adgangskode:</td>
<td width="50%"><input type="password" name="Adgangskode" size="20">
(test)</td>
</tr>
</table>
<p><input type="submit" value="Login" name="Action"></p>
</form>

</body></html>
Avatar billede keysersoze Guru
23. maj 2010 - 00:16 #1
Hvad præcis er linje 12?
Avatar billede masteraaen Novice
23. maj 2010 - 09:35 #2
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' ?
Avatar billede softspot Forsker
23. maj 2010 - 09:46 #3
Du kan åbne login.asp i din editor og finde linie 12...
Avatar billede masteraaen Novice
23. maj 2010 - 09:56 #4
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
Avatar billede masteraaen Novice
23. maj 2010 - 09:57 #5
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...
Avatar billede softspot Forsker
23. maj 2010 - 10:05 #6
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).
Avatar billede keysersoze Guru
23. maj 2010 - 10:30 #7
Prøv engang denne;

Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("/db/BrugerData.mdb")

Tester du lokalt eller på webhotel (hvilket?)?
Avatar billede masteraaen Novice
23. maj 2010 - 10:36 #8
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"?
Avatar billede masteraaen Novice
23. maj 2010 - 10:38 #9
@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
Avatar billede masteraaen Novice
23. maj 2010 - 10:39 #10
Jeg tester det direkte på nettet: www.miljøbolig.dk/Login.asp
Avatar billede keysersoze Guru
23. maj 2010 - 10:47 #11
Med den fejlbesked jeg får når jeg benytter siden tyder noget på at du ikke benytter et Site 3 eller Site 5 som de skriver i deres support; http://www.i123.dk/support/connect-til-access-database-via-asp-site-3-og-5/

Kører du ikke på en MS-maskine kan du ikke connecte til Access, så skal du i stedet benytte MySQL.
Avatar billede masteraaen Novice
23. maj 2010 - 12:27 #12
Men hvis der står i min opsætning at Enable ASP er slået til, burde jeg så ikke kunne køre det?

Har lige sendt dig login, hvis du har tid...
Avatar billede keysersoze Guru
23. maj 2010 - 13:20 #13
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.
Avatar billede keysersoze Guru
23. maj 2010 - 13:21 #14
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.
Avatar billede masteraaen Novice
23. maj 2010 - 13:34 #15
Hmmm..... ok.
Kan jeg selv skifte til et ms-produkt via kontrolpanelet?

Kan jeg bruge MySQL lige så let? Har aldrig prøvet det.
Avatar billede keysersoze Guru
23. maj 2010 - 13:42 #16
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.
Avatar billede masteraaen Novice
23. maj 2010 - 13:58 #17
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!!!
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