/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Læse access
Fra : L@rs K.


Dato : 22-05-06 09:03

Hej !
Jeg er i gang med et "log in" via en Access database. Det er et script jeg
har fundet
på nettet, som jeg vil lave lidt om på. Men men......

Cellerne i databasen er som filg :
id username password adgangsniveau

1 bruger1 xxx 10


jeg har indsat noget af forspørgselen, hvor den sammen ligner de indtastede
bruger og password værdier.
MEN. Jeg kunne vil gerne have den til at læse værdien "adgangsniveau", da
den enkelte bruger får tildelt
et adgangsniveau. Tallet skal bliver så checket på den enkelte side for at
se om brugeren har adgang.
MEN, hvad skal jeg skrive i koden for, at få den til, at læse
"adgangsniveau" ???

Håber der er nogen der kan hjælpe...

Mvh. Lars




strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" &
Server.MapPath("database.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN
strSQL = "SELECT * FROM user where (username = '" & Request("username") &
"') and (password ='" & Request("password") & "')"
Set ez = myConn.Execute(strSQL)
Session("login") = "yes mate"
Response.Redirect "default.asp"
EZ.Close



 
 
Jens Gyldenkærne Cla~ (22-05-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 22-05-06 09:30

L@rs K. skrev:

> MEN, hvad skal jeg skrive i koden for, at få den til, at læse
> "adgangsniveau" ???

Du skal bare gemme adgangsniveauet i en session-variabel.


> strSQL = "SELECT * FROM user where (username = '" &
> Request("username") &
> "') and (password ='" & Request("password") & "')"

Ovenstående metode er usikker, da du ikke validerer dine inddata.
Se hvordan det kan gøres - og hvorfor man bør gøre det - her:
<http://asp-faq.dk/article/?id=95>


> Set ez = myConn.Execute(strSQL)
> Session("login") = "yes mate"
> Response.Redirect "default.asp"
> EZ.Close


Hov - her går det helt galt. Ideen med et login er at tjekke et
brugernavn og en adgangskode og så lukke folk ind hvis der er
indtastet en korrekt kombination. Men herover lukker du alle folk
ind. Derudover får du aldrig lukket dit postsæt, da du
viderestiller før du forsøger at lukke.

Du kører godt nok en login-forespørgsel, men du bruger ikke
forespørgslen til at afgøre om folk skal lukkes ind eller ej.

Du skal i stedet lave noget a la:


Set ez = myConn.Execute(strSQL)

If Not ez.EOF Then
       ' Der er fundet en post => vi har en gyldig bruger
       Session("login") = true
       Session("adgangsniveau") = ez("adgangsniveau")
Else
       ' Tomt postsæt => ikke gyldig bruger
       Session("login") = false
       Session("adgangsniveau") = Nothing
End If

' Luk og sluk postsætttet
   ez.close
   set ez = Nothing

' Viderestil til passende side
   
If session("login") Then
       Response.redirect "default.asp"
Else
       Response.redirect "loginfejl.asp"
End If
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste