/ 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
Login spørgsmål (newbie)
Fra : Ramitek


Dato : 26-10-02 03:55

Hej i NG. (newbie spørgsmål)
Håber at der er en der kan hjælpe. Har prøvet mange
forskellige ting ( Movenext mv. ) man kan alså ikke
få det til at virke. Mit problem er, at jeg ikke kan få
scriptet til at checke linie/record/post 2 og 3 og så
videre...

Script:

<html>
<head>
<title>Login</title>
</head>
<body>
<h2>Login</h2>

<%
if Request.Form("action") = "Login" then

Set Conn = Server.Createobject("ADODB.Connection")
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " &_
"DBQ=" & Server.Mappath("x.mdb")
Conn.Open strDSN

Username = Replace(Request.Form("username"),"'","")
Password = Replace(Request.Form("password"),"'","")

SQL = "SELECT * FROM Users WHERE Username = '"&Username&"' " &_
"AND Password = '"&Password&"' AND Disabled = 0"
Set RS = Conn.Execute(SQL)

if not RS.EOF then
Session("username") = RS("Username")
Response.Write "<b>Login successful!</b>"
else
Session("username") = ""
Response.Write "<b>Login failed! - Username or Password incorrect</b>"
end if

RS.close
Conn.Close
Set RS = nothing
Set Conn = nothing

end if

if Session("username") = "" then
%>

<form action="Login.asp" method="post">
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password">
<input type="submit" name="action" value="Login"><br>
</form>

<%
end if
%>

<br><br><a href="Page1.asp">Page 1</a>

</body>
</html>




 
 
Jens Gyldenkærne Cla~ (26-10-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 26-10-02 12:28

Ramitek skrev:

> Håber at der er en der kan hjælpe. Har prøvet mange
> forskellige ting ( Movenext mv. ) man kan alså ikke
> få det til at virke. Mit problem er, at jeg ikke kan få
> scriptet til at checke linie/record/post 2 og 3

Ikke forstået. Det ser umiddelbart fornuftigt nok ud herfra. Hvad
er det du vil tjekke?

Du får lige et par kommentarer til din kode:

> Username = Replace(Request.Form("username"),"'","")
> Password = Replace(Request.Form("password"),"'","")

Med ovenstående linjer fjerner du ' fra såvel brugernavn som
password. Sikkerhedsmæssigt er det fint nok, men du kan risikere at
få problemer hvis der er brugere der har brugt ' i enten brugernavn
eller password (og du ikke også har fjernet det derfra).
Hvis du i stedet erstatter ' med '' (altså 1 x enkelt anførselstegn
=> 2 x enkelt anførselstegn) får du samme sikkerhed, uden at ændre
i de indtastede værdier.

> SQL = "SELECT * FROM Users WHERE Username = '"&Username&"' "
> &_ "AND Password = '"&Password&"' AND Disabled = 0"

Hvis ellers dit Username er unikt kan dette databasekald maks give
én post - nemlig den rigtige.

> if not RS.EOF then

Så hvis der findes en post er der indtastet gyldige
brugeroplysninger.

> Session("username") = RS("Username")

I dette tilfælde ligger brugernavnet allerede i variablen Username.
Det gør dog næppe nogen stor forskel at du henter fra postsættet i
stedet for.

> Response.Write "<b>Login successful!</b>"

De fleste loginsider plejer at redirecte til en anden side. Herfra
kan man så lægge et logintjek ind på alle beskyttede sider - noget
i retning af:

<% If Session("username") = "" Then
   ' Retur til loginside
   Response.redirect "login.asp"
End If
%>

Ovenstående kode vil måske ikke opføre sig korrekt hvis
Session("username") slet ikke er sat (prøv det) - men det kan omgås
ved at sætte variablen i Session_onStart.

Jeg plejer selv at benytte en boolesk variabel - fx
Session("isValidated") og sætte den sand ved succesfuldt login. Så
bliver brugervalideringstjekket

<% If Not Session("IsValidated") Then
   ' Retur til loginside
   Response.redirect "login.asp"
End If
%>

Det fanger både fejlslagne logins og bruger der forsøger at gå uden
om loginsiden.
--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)
I ovenstående tekst benyttes nyt komma.

happycow- (29-10-2002)
Kommentar
Fra : happycow-


Dato : 29-10-02 09:56

Hej newbie :)

Lige en note til det allerede postede svar:

Du kan lige notere at ordet "Username" som feltnavn i en table (og sikkert
også andre steder), er et reserveret ord.

altså skal du i dine SQL strenge indsætte Username som: [Username] for at
undgå et problem med denne.

Eksempel:

"SELECT * From Users WHERE [username] = '" & Username & "'"

Hvis du vil vide mere om disse reserverede ord kan du søge på google efter
noget i stil med: "Reserved words" +SQL +DB

Håber det hjælper dig.

SWJ-

/eof

"Jens Gyldenkærne Clausen" <jens@gyros.invalid> wrote in message
news:Xns92B38907AC5D9jcdmfdk@127.0.0.1...
> Ramitek skrev:
>
> > Håber at der er en der kan hjælpe. Har prøvet mange
> > forskellige ting ( Movenext mv. ) man kan alså ikke
> > få det til at virke. Mit problem er, at jeg ikke kan få
> > scriptet til at checke linie/record/post 2 og 3
>
> Ikke forstået. Det ser umiddelbart fornuftigt nok ud herfra. Hvad
> er det du vil tjekke?
>
> Du får lige et par kommentarer til din kode:
>
> > Username = Replace(Request.Form("username"),"'","")
> > Password = Replace(Request.Form("password"),"'","")
>
> Med ovenstående linjer fjerner du ' fra såvel brugernavn som
> password. Sikkerhedsmæssigt er det fint nok, men du kan risikere at
> få problemer hvis der er brugere der har brugt ' i enten brugernavn
> eller password (og du ikke også har fjernet det derfra).
> Hvis du i stedet erstatter ' med '' (altså 1 x enkelt anførselstegn
> => 2 x enkelt anførselstegn) får du samme sikkerhed, uden at ændre
> i de indtastede værdier.
>
> > SQL = "SELECT * FROM Users WHERE Username = '"&Username&"' "
> > &_ "AND Password = '"&Password&"' AND Disabled = 0"
>
> Hvis ellers dit Username er unikt kan dette databasekald maks give
> én post - nemlig den rigtige.
>
> > if not RS.EOF then
>
> Så hvis der findes en post er der indtastet gyldige
> brugeroplysninger.
>
> > Session("username") = RS("Username")
>
> I dette tilfælde ligger brugernavnet allerede i variablen Username.
> Det gør dog næppe nogen stor forskel at du henter fra postsættet i
> stedet for.
>
> > Response.Write "<b>Login successful!</b>"
>
> De fleste loginsider plejer at redirecte til en anden side. Herfra
> kan man så lægge et logintjek ind på alle beskyttede sider - noget
> i retning af:
>
> <% If Session("username") = "" Then
> ' Retur til loginside
> Response.redirect "login.asp"
> End If
> %>
>
> Ovenstående kode vil måske ikke opføre sig korrekt hvis
> Session("username") slet ikke er sat (prøv det) - men det kan omgås
> ved at sætte variablen i Session_onStart.
>
> Jeg plejer selv at benytte en boolesk variabel - fx
> Session("isValidated") og sætte den sand ved succesfuldt login. Så
> bliver brugervalideringstjekket
>
> <% If Not Session("IsValidated") Then
> ' Retur til loginside
> Response.redirect "login.asp"
> End If
> %>
>
> Det fanger både fejlslagne logins og bruger der forsøger at gå uden
> om loginsiden.
> --
> Jens Gyldenkærne Clausen
> MF (medlem af FIDUSO - www.fiduso.dk)
> I ovenstående tekst benyttes nyt komma.



Jesper Stocholm (29-10-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 29-10-02 10:08

happycow- wrote :

> Lige en note til det allerede postede svar:
>
> Du kan lige notere at ordet "Username" som feltnavn i en table (og
> sikkert også andre steder), er et reserveret ord.
>
> altså skal du i dine SQL strenge indsætte Username som: [Username] for
> at undgå et problem med denne.
>
> Eksempel:
>
> "SELECT * From Users WHERE [username] = '" & Username & "'"
>
> Hvis du vil vide mere om disse reserverede ord kan du søge på google
> efter noget i stil med: "Reserved words" +SQL +DB

Har du selv prøvet at søge [1] efter dette ? Jvf [2] er Username
ikke et reserveret ord i Access - hverken i version 95,97 eller 2000

[1] http://www.google.com/search?hl=en&ie=UTF-8&oe=UTF-8&q=reserved+words+access
[2] http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q209187&LN=EN-US


--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

happycow- (29-10-2002)
Kommentar
Fra : happycow-


Dato : 29-10-02 10:19

"Jesper Stocholm" <spam200210@stocholm.dk> wrote in message
news:Xns92B667167706Fspamstocholmdk@130.226.1.34...
> happycow- wrote :
>
> > Lige en note til det allerede postede svar:
> >
> > Du kan lige notere at ordet "Username" som feltnavn i en table (og
> > sikkert også andre steder), er et reserveret ord.
> >
> > altså skal du i dine SQL strenge indsætte Username som: [Username] for
> > at undgå et problem med denne.
> >
> > Eksempel:
> >
> > "SELECT * From Users WHERE [username] = '" & Username & "'"
> >
> > Hvis du vil vide mere om disse reserverede ord kan du søge på google
> > efter noget i stil med: "Reserved words" +SQL +DB
>
> Har du selv prøvet at søge [1] efter dette ? Jvf [2] er Username
> ikke et reserveret ord i Access - hverken i version 95,97 eller 2000
>

Hej Jesper,

Jeg har lige kørt en søgning på det og der må jeg faktisk sige du har
fuldstændig ret.

Naturligvis skrev jeg at username er reserveret fordi jeg har oplevet det
selv. Åbenbart må det have været i en anden sammenhæng. Tak for det, nu kan
jeg sidde og være irriteret over jeg ikke kan huske hvor det er og hvornår
:)

Please disregard previous post

Til Newbie:

Her er en liste over reserverede ord, bare så du har en (og så jeg har en
selv)

http://www.btgi.net/reservedwords.cfm



Jesper Stocholm (29-10-2002)
Kommentar
Fra : Jesper Stocholm


Dato : 29-10-02 10:26

happycow- wrote :

> "Jesper Stocholm" <spam200210@stocholm.dk> wrote in message
> news:Xns92B667167706Fspamstocholmdk@130.226.1.34...
>> Har du selv prøvet at søge [1] efter dette ? Jvf [2] er Username
>> ikke et reserveret ord i Access - hverken i version 95,97 eller 2000
> Jeg har lige kørt en søgning på det og der må jeg faktisk sige du har
> fuldstændig ret.
>
> Naturligvis skrev jeg at username er reserveret fordi jeg har oplevet
> det selv. Åbenbart må det have været i en anden sammenhæng. Tak for
> det, nu kan jeg sidde og være irriteret over jeg ikke kan huske hvor
> det er og hvornår

Hvis du kigger i listen, så er ordet "user" reserveret ... måske det
dette ord, du har oplevet før ?

> Her er en liste over reserverede ord, bare så du har en (og så jeg har
> en selv)
>
> http://www.btgi.net/reservedwords.cfm

Hvorfor ikke bruge de lister, der er leveret af firmaet, der har lavet
produkterne ?

T-SQL
http://msdn.microsoft.com/library/en-us/tsqlref/ts_ra-rz_9oj7.asp?frame=true

Access 95,97
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q109312&

Access 2000
http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q209187&LN=EN-US

Vær også opmærksom på, at der kan være forskel ved anvendelse af SQL i
forbindelse med mySQL, MS SQL, ORACLE etc ...



--
Jesper Stocholm
http://stocholm.dk
http://asp.stocholm.dk
Svar til gruppen og ikke til mig privat pr. email :|

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste