/ 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
HJælp mit login ?? hvad er forkert
Fra : JonZ


Dato : 21-05-05 11:48

Når jeg prøver at logge på, bliver jeg sendt til fejlsiden uanset
hvad, nogen der kan se hvad der er galt. ??


Default.asp
-----------
<html>


   <title>tid og dato</title>

<head>

</head>

<body>


   <form method="post" action="login.asp">

   Login: <input type="text" name="bruger"><br>

   Kodeord: <input type="password" name="pass"><br>

   <input type="submit" value="Hjælp jeg vil ind">

   </form>


</body>


</html>






Login.asp
------------------------

<html>


<title>Tejk login</title>

<head>

</head>

<body>

<%


   ' Databaseforbindelse

      Set Conn = Server.CreateObject("ADODB.Connection")

      DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "

      DSN = DSN & "DBQ=" & Server.MapPath("databaser/navne.mdb")

      Conn.Open DSN


      dim DSN

      dim strSQL

      dim rs

      On Error Resume Next


   '' SQL forespørgsel

      strSQL = "Select from personer Where BrugerNavn = '" &
Request.Form("bruger") &"'"


   '' Udfør forespørgsel

      Set rs = Conn.Execute(strSQL)


   ' Løkken starter

      Do

      If rs.EOF Then

      Session("login") = "NEJ"

      Session.Timeout = 30

      Response.Redirect "fejl.asp"

      else

      if Request.Form("bruger") = rs("Brugernavn") and
Request.Form("pass") = rs("password") Then

      Session("login") = "JA"

      Session.Timeout = 30

      Session("username") = rs("brugernavn")

      Response.Redirect "loggetin.asp"

      else

      Session("login") = "NEJ"

      Session.Timeout = 30

      Response.Redirect "fejl.asp"

      end if

      end if


   ' Næste Record i rs

      rs.MoveNext


   ' Køre løkke

      Loop While Not rs.EOF

      rs.Close

      Set rs = Nothing


      Conn.Close

      Set Conn = Nothing

%>

</dl>

</body>

</html>


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

Hilsen JonZ

--- Hvis 1 synkronsvømmer drukner, drunker de så allesammen--

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
David Trasbo (21-05-2005)
Kommentar
Fra : David Trasbo


Dato : 21-05-05 12:00

JonZ wrote in dk.edb.internet.webdesign.serverside.asp:
> Når jeg prøver at logge på, bliver jeg sendt til fejlsiden uanset
> hvad, nogen der kan se hvad der er galt. ??

Nej.


> Default.asp

<Snip>En masse ubrugelig kode</Snip>

> Login.asp

<Snip>En masse ubrugelig kode</Snip>

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

Hvis jeg var dig ville jeg bruge et script der fungerer, som det på
Hjemmesideskolen:
<http://hjemmesideskolen.dk/scripts/asppass/default.asp>

Jeg vil anbefale dig at lade være med at fylde dit indlæg med
ubrugelig kode. Det er der ikke mange der kan overskue.

Jeg vil anbefale dig at læse: <http://usenet.dk/netikette>.

--
David Trasbo.
Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

JonZ (21-05-2005)
Kommentar
Fra : JonZ


Dato : 21-05-05 12:02

David Trasbo wrote in dk.edb.internet.webdesign.serverside.asp:
> JonZ wrote in dk.edb.internet.webdesign.serverside.asp:
> > Når jeg prøver at logge på, bliver jeg sendt til fejlsiden uanset
> > hvad, nogen der kan se hvad der er galt. ??
>
> Nej.
>
>


Hvis du ikke kan hjlæpe snip så snip bare lade være at svare snip.

men tak for linket

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

David Trasbo (21-05-2005)
Kommentar
Fra : David Trasbo


Dato : 21-05-05 12:22

> Hvis du ikke kan hjlæpe snip så snip bare lade være at svare snip.

[-&. Ikke forstået. Mente du "Hvis du ikke kan hjælpe så lad bare være med
at svare"?

> men tak for linket

Selv tak. Her kommer endnu et:
<http://usenet.dk/netikette/citatteknik.html#klip>. Læs under "Hvad gør
man så".

"<Snip>" er almindeligt brugt på Usenet og bruges til at fortælle hvad der
er klippet væk for overskuelighedens skyld.

--
David Trasbo.
Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.
(Nedenfor: Autosignatur fra min Usenet udbyder.)


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

JonZ (21-05-2005)
Kommentar
Fra : JonZ


Dato : 21-05-05 20:14

David Trasbo wrote in dk.edb.internet.webdesign.serverside.asp:
> > Hvis du ikke kan hjlæpe snip så snip bare lade være at svare snip.
>
> [-&. Ikke forstået. Mente du "Hvis du ikke kan hjælpe så lad bare være med
> at svare"?
>
> > men tak for linket
>
> Selv tak. Her kommer endnu et:
> <http://usenet.dk/netikette/citatteknik.html#klip>. Læs under "Hvad gør
> man så".
>
> "<Snip>" er almindeligt brugt på Usenet og bruges til at fortælle hvad der
> er klippet væk for overskuelighedens skyld.
>
> --
> David Trasbo.
> Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.
> (Nedenfor: Autosignatur fra min Usenet udbyder.)
>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


Ja jeg mente at hvis du ikke kan hjælpe, så lad være med at svare, måske kan
du, men gider ikke, og fair nok, så lad være med at svare, jeg er total ny på
asp, tænkte at det måske var nemmere at hjælpe hvis jeg postede hele koden.
Hvad <snip> betyder kunne ikke bekymre mig mindre, jeg kommer med et indlæg
og forventer i det mindste at blive svaret på en pæn måde. Måske du selv
skulle følge dette link:

Vær en god Usenet bruger. Læs <http://usenet.dk/netikette>.

<snip>
Med venlig hilsen JonZ
</snip>

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Tomasz Otap (21-05-2005)
Kommentar
Fra : Tomasz Otap


Dato : 21-05-05 18:44

David Trasbo wrote:
> <Snip>En masse ubrugelig kode</Snip>
>
> Hvis jeg var dig ville jeg bruge et script der fungerer, som det på
> Hjemmesideskolen:
> <http://hjemmesideskolen.dk/scripts/asppass/default.asp>
>

Godt svaret, med en snært af arrogance, kryddet med en del overlegenhed.
Lader man smagen dvæle ved, er der også tydelige undertoner af
ignorans. Ovenstående script, der ellers er glimrende, indeholder også
en SQL-injection sårbarhed, som påpeget af Carsten Bang i tråden
"Sikkerhedshul i loginscripts" (begrænset under Access, mere seriøs
under MSSQL).

> Jeg vil anbefale dig at læse: <http://usenet.dk/netikette>.

Ja, der er en masse gode råd, som f.eks.:
"Overordnet handler det nok om at holde sig til netiketten og om at
skrive i et høfligt sprog som man kan være bekendt overfor fremmede,
ligesindede mennesker."

t

NoMoreSpam (21-05-2005)
Kommentar
Fra : NoMoreSpam


Dato : 21-05-05 16:48

"JonZ"

> Do
>
> If rs.EOF Then
>
> Session("login") = "NEJ"
>
> Session.Timeout = 30
>
> Response.Redirect "fejl.asp"
>
> else
>
> if Request.Form("bruger") = rs("Brugernavn") and
> Request.Form("pass") = rs("password") Then
>
> Session("login") = "JA"
>
> Session.Timeout = 30
>
> Session("username") = rs("brugernavn")
>
> Response.Redirect "loggetin.asp"
>
> else
>
> Session("login") = "NEJ"
>
> Session.Timeout = 30
>
> Response.Redirect "fejl.asp"
>
> end if
>
> end if
>
>
> ' Næste Record i rs
>
> rs.MoveNext
>
>
> ' Køre løkke
>
> Loop While Not rs.EOF

Du looper igennem et recordset og undersøger om hver post
er et hit. Hvis du får et hit midt i recordsettet vil du aldrig opdage
det fordi du løber samtlige igennem Det eneste du kan finde ud af
er om sidste record er et hit.
Inden du gennemløber recordsettet laver du en variabel der hedder
bolFundet og sætter den til false. Når du så får et hit ændrer du den
til true og når recordsettet er gennemløbet undersøgen du værdien af
bolFundet.

--
Med venlig hilsen
Tom Jensen

Læs mere om databaser og asp her:
http://www.FFSoft.dk



Casper Bang (21-05-2005)
Kommentar
Fra : Casper Bang


Dato : 21-05-05 17:16

[SNIP kode]

Her er et forslag, som bygger på din kode - men som nok er mere praktisk :)
Du er velkommen til at spørge nærmere om det.

dim DSN, strSQL, rs

' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("databaser/navne.mdb")
Conn.Open DSN

'' SQL forespørgsel
strSQL = "Select password, brugernavn from personer Where BrugerNavn = '" &
replace(Request.Form("bruger"), "'", "'') &"'"

'' Udfør forespørgsel
Set rs = Conn.Execute(strSQL)

'her tester vi om password er korrekt:
if Request.Form("pass") = rs("password") Then
Session("login") = "JA"
Session.Timeout = 30
Session("username") = rs("brugernavn")
Response.Redirect "loggetin.asp"
else 'forkert password
Session("login") = "NEJ"
Session.Timeout = 30
Response.Redirect "fejl.asp"
end if

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing



Christian Kragh (21-05-2005)
Kommentar
Fra : Christian Kragh


Dato : 21-05-05 20:43

Hej.

Ifølge din kode er der et sikkerhedshul som måske lige skal overvejes...

Du finder alle felter fra databasen med brugernavnet fra forrige side.

Du erstatter alle ping (') med ingen ting...

Det mangler du også at gøre i forespørgelsen på koden...


> if Request.Form("pass") = rs("password") Then

> if replace(Request.Form("pass"), "'", "'') = rs("password") Then

Christian


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Casper Bang (21-05-2005)
Kommentar
Fra : Casper Bang


Dato : 21-05-05 21:15

> Ifølge din kode er der et sikkerhedshul som måske lige skal overvejes...

Njaa, både og...


> Du finder alle felter fra databasen med brugernavnet fra forrige side.
>
> Du erstatter alle ping (') med ingen ting...

Ikke helt - jeg havde skrevet " efterfulgt af to gange '
Det ville give en kompilerfejl, så et sikkerhedshul ville der ikke komme ud
af det; koden kan ikke køres som den ser ud.
Den linie skulle have været:

strSQL = "Select password, brugernavn from personer Where BrugerNavn = '" &
replace(Request.Form("bruger"), "'", "''") &"'"

Altså et stk. " efter det der stod der i forvejen.

> Det mangler du også at gøre i forespørgelsen på koden...
>> if Request.Form("pass") = rs("password") Then
>
>> if replace(Request.Form("pass"), "'", "'') = rs("password") Then

Det har du til gengæld ikke ret i Christian.
' betyder ikke noget når det er ASP der sammenligner det, hvilket det er når
det er trukket ud af databasen og ned i et recordset.
Det er kun i SQL sætninger som bliver sendt til databasen at ' kan give
problemer.

Men tak fordi du pointerede fejlen :) Håber JonZ læser det, før han får for
mange problemer med det.
~Casper



Tomasz Otap (21-05-2005)
Kommentar
Fra : Tomasz Otap


Dato : 21-05-05 21:09

Casper Bang wrote:
> '' Udfør forespørgsel
> Set rs = Conn.Execute(strSQL)
>
> 'her tester vi om password er korrekt:
> if Request.Form("pass") = rs("password") Then
> Session("login") = "JA"
> Session.Timeout = 30
> Session("username") = rs("brugernavn")
> Response.Redirect "loggetin.asp"
> else 'forkert password
> Session("login") = "NEJ"
> Session.Timeout = 30
> Response.Redirect "fejl.asp"
> end if

Godt eksempel - men man bør også lige teste for, hvorvidt rs returnerer
noget overhovedet (dvs. om BrugerNavn findes i databasen). Ellers løber
man hurtigt ind i en ASP-fejl, hvis rs er tom og man spørger efter
rs("password"). Man kan lige sætte en "if not rs.eof then..." ind i koden.

Og hvis man alligevel checker for det, kan man måske overlade hele
arbejdet til SQL-serveren og blot skrive:

--------
' SQL forespørgsel
strSQL = "select password,brugernavn from personer where BrugerNavn='"&_
replace(Request.Form("bruger"),"'","''") & "' and password='" &_
replace(Request.Form("pass"),"'","''") & "'"

Set rs = Conn.Execute(strSQL)

' her tester vi, om brugeren findes
if not rs.eof then
Session("login") = "JA"
Session.Timeout = 30
Session("username") = rs("brugernavn")
Response.Redirect "loggetin.asp"
else 'ingen bruger med denne login & password
Session("login") = "NEJ"
Session.Timeout = 30
Response.Redirect "fejl.asp"
end if
---------

t

Casper Bang (21-05-2005)
Kommentar
Fra : Casper Bang


Dato : 21-05-05 22:41

> Godt eksempel - men man bør også lige teste for, hvorvidt rs returnerer
> noget overhovedet (dvs. om BrugerNavn findes i databasen). Ellers løber
> man hurtigt ind i en ASP-fejl, hvis rs er tom og man spørger efter
> rs("password"). Man kan lige sætte en "if not rs.eof then..." ind i koden.

Ja, det havde jeg helt glemt.


> Og hvis man alligevel checker for det, kan man måske overlade hele
> arbejdet til SQL-serveren og blot skrive:

Ulempen ved den metode, er at man ikke kan se om det er kodeordet eller
brugernavnet der er forkert...
I nogle systemer er det rart at kunne udskrive fejlmeddelelsen afhængigt af
dette - men i det JonZ lagde op til, har du helt ret. Jeg ville dog i det
tilfælde nok lave en COUNT på tabellen i stedet; at returnere brugernavn og
password er lige gyldigt når de data ikke bruges til noget.

Noget andet jeg havde overset (hold da op noget slamkode jeg kom frem med i
det eksempel), er at databasenconnectionen ikke bliver lukket. Du redirekter
før den lukkes.
Kan løses med:

if not rs.eof then
Session("login") = "JA"
Session.Timeout = 30
Session("username") = rs("brugernavn")
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
Response.Redirect "loggetin.asp"
else 'ingen bruger med denne login & password
Session("login") = "NEJ"
Session.Timeout = 30
rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing
Response.Redirect "fejl.asp"
end if


JonZ, hvis du vil have eksempel genskrevet med de forskellige ændringer vi
har lavet undervejs, må du lige sige til.



JonZ (22-05-2005)
Kommentar
Fra : JonZ


Dato : 22-05-05 00:36

>
> JonZ, hvis du vil have eksempel genskrevet med de forskellige ændringer vi
> har lavet undervejs, må du lige sige til.
>
>

Hej Casper

Det vil jeg meget gerne, hvis du kan skrive hvor i scriptet det med "replace"
skal stå vil det være fint. For jeg har selv prøvet det, men det virker ikke
rigtig.

Og mange tak for hjælpen.

Hej JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Casper Bang (22-05-2005)
Kommentar
Fra : Casper Bang


Dato : 22-05-05 11:58

> Det vil jeg meget gerne, hvis du kan skrive hvor i scriptet det med
> "replace"
> skal stå vil det være fint. For jeg har selv prøvet det, men det virker
> ikke
> rigtig.

Jeg har prøvet at samle de forslag vi har snakket om i tråden.
Det her burde virke - hvis det ikke gør må du lige sige til.

dim DSN, strSQL, rs, RedirectPage

' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("databaser/navne.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select COUNT(brugernavn) from personer Where BrugerNavn = '" &
replace(Request.Form("bruger"), "'", "''") &"' AND PassWord = '" &
replace(Request.Form("pass"), "'", "''") &"'"

' Udfør forespørgsel
Set rs = Conn.Execute(strSQL)

'her tester vi om password er korrekt:
if rs(0) = 1 Then
Session("login") = "JA"
Session.Timeout = 30
Session("username") = Request.Form("bruger")
RedirectPage = "loggetin.asp"
else 'forkert password ELLER brugernavn
Session("login") = "NEJ"
Session.Timeout = 30
RedirectPage = "fejl.asp"
end if

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing

'efter databaseforbindelsen er lukket ned, videresender vi til den korrekte
side.
response.redirect(RedirectPage)




> Og mange tak for hjælpen.

Det var så lidt. Vi kom i gang med nogle forskellige interessante emner.



JonZ (22-05-2005)
Kommentar
Fra : JonZ


Dato : 22-05-05 14:45

Casper Bang wrote in dk.edb.internet.webdesign.serverside.asp:
> > Det vil jeg meget gerne, hvis du kan skrive hvor i scriptet det med
> > "replace"
> > skal stå vil det være fint. For jeg har selv prøvet det, men det virker
> > ikke
> > rigtig.
>
> Jeg har prøvet at samle de forslag vi har snakket om i tråden.
> Det her burde virke - hvis det ikke gør må du lige sige til.
>
> dim DSN, strSQL, rs, RedirectPage
>
> ' Databaseforbindelse
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("databaser/navne.mdb")
> Conn.Open DSN
>
> ' SQL forespørgsel
> strSQL = "Select COUNT(brugernavn) from personer Where BrugerNavn = '" &
> replace(Request.Form("bruger"), "'", "''") &"' AND PassWord = '" &
> replace(Request.Form("pass"), "'", "''") &"'"
>
> ' Udfør forespørgsel
> Set rs = Conn.Execute(strSQL)
>
> 'her tester vi om password er korrekt:
> if rs(0) = 1 Then
> Session("login") = "JA"
> Session.Timeout = 30
> Session("username") = Request.Form("bruger")
> RedirectPage = "loggetin.asp"
> else 'forkert password ELLER brugernavn
> Session("login") = "NEJ"
> Session.Timeout = 30
> RedirectPage = "fejl.asp"
> end if
>
> rs.Close
> Set rs = Nothing
> Conn.Close
> Set Conn = Nothing
>
> 'efter databaseforbindelsen er lukket ned, videresender vi til den korrekte
> side.
> response.redirect(RedirectPage)
>
>
>
>
> > Og mange tak for hjælpen.
>
> Det var så lidt. Vi kom i gang med nogle forskellige interessante emner.
>
>


Tusind tak for hjælpen Casper.

Jeg ved ikke hvad der er galt. Nu kan jeg godt logge ind, men det er lige
meget hvad jeg skriver og om jeg skriver noget overhovedet.
Jeg har ændret min database til at hedder "medlemmer" i stedet for "personer"
det har jeg ændret i det du skrev, men ?¿
Men tak for hjælpen alligevel. Det ender nok med at jeg må "låne" et script
fra en, men det var nu sjovere at lave et selv.

Hilsen

JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Casper Bang (22-05-2005)
Kommentar
Fra : Casper Bang


Dato : 22-05-05 15:21

> Jeg ved ikke hvad der er galt. Nu kan jeg godt logge ind, men det er lige
> meget hvad jeg skriver og om jeg skriver noget overhovedet.

Skriver noget hvor? I login-felterne, eller...?


> Jeg har ændret min database til at hedder "medlemmer" i stedet for
> "personer"
> det har jeg ændret i det du skrev, men ?¿

Burde ikke have betydning


> Men tak for hjælpen alligevel. Det ender nok med at jeg må "låne" et
> script
> fra en, men det var nu sjovere at lave et selv.

Naa, giv ikke op endnu - forklar dit problem lidt nærmere, og vi skal nok
finde problemet.



JonZ (22-05-2005)
Kommentar
Fra : JonZ


Dato : 22-05-05 15:26

Casper Bang wrote in dk.edb.internet.webdesign.serverside.asp:
> > Jeg ved ikke hvad der er galt. Nu kan jeg godt logge ind, men det er lige
> > meget hvad jeg skriver og om jeg skriver noget overhovedet.
>
> Skriver noget hvor? I login-felterne, eller...?
>
>
> > Jeg har ændret min database til at hedder "medlemmer" i stedet for
> > "personer"
> > det har jeg ændret i det du skrev, men ?¿
>
> Burde ikke have betydning
>
>
> > Men tak for hjælpen alligevel. Det ender nok med at jeg må "låne" et
> > script
> > fra en, men det var nu sjovere at lave et selv.
>
> Naa, giv ikke op endnu - forklar dit problem lidt nærmere, og vi skal nok
> finde problemet.
>
Der hvor man skal skrive sit brugernavn og sit password, hvis jeg skriver
noget der, bliver man logget ind uanset hvad man skriver, jeg kan ikke selv
lige se hvad der er galt, har kigget på om det er fordi der er byttet om på
brugernavn og pass, men det er der ikke.

Hilsen

Jonz

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Casper Bang (22-05-2005)
Kommentar
Fra : Casper Bang


Dato : 22-05-05 21:17

> Der hvor man skal skrive sit brugernavn og sit password, hvis jeg skriver
> noget der, bliver man logget ind uanset hvad man skriver, jeg kan ikke
> selv
> lige se hvad der er galt, har kigget på om det er fordi der er byttet om
> på
> brugernavn og pass, men det er der ikke.

Det kræver nok lidt fejlfinding.
Efter linien:
Set rs = Conn.Execute(strSQL)
indsætter du følgende linier:
response.write(rs(0))
response.end

prøv nu at logge ind først med forkert bruger/password, derefter med et
korrekt. Skriv her hvad du fik af resultat de to gange.



JonZ (22-05-2005)
Kommentar
Fra : JonZ


Dato : 22-05-05 21:40

> Det kræver nok lidt fejlfinding.
> Efter linien:
> Set rs = Conn.Execute(strSQL)
> indsætter du følgende linier:
> response.write(rs(0))
> response.end
>
> prøv nu at logge ind først med forkert bruger/password, derefter med et
> korrekt. Skriv her hvad du fik af resultat de to gange.
>
>

Hej Casper

Ved forkert login fik jeg

0

Ved rigtig login fik jeg

1

Gad nok vide hvad det siger dig
Ved ikke om jeg har sagt at jeg er pæn ny i dette .asp

Hilsen JonZ


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Casper Bang (23-05-2005)
Kommentar
Fra : Casper Bang


Dato : 23-05-05 07:16

> Ved forkert login fik jeg
>
> 0
>
> Ved rigtig login fik jeg
>
> 1
>
> Gad nok vide hvad det siger dig
> Ved ikke om jeg har sagt at jeg er pæn ny i dette .asp

Prøv at fjerne de to nye linier du indsatte før, og ændre linien:
if rs(0) = 1 Then
til:
if rs(0)*1 = 1 Then

Jeg er ikke sikker på om det hjælper, men har en anelse om at din ASP-side
ikke opdager at det er et tal din database leverer tilbage.
Skriv om det hjælper :)
Hvis det ikke gør, så prøv at smide HELE sidens kode herind. Det kunne være
din redirect som er forkert, men det kan jeg nemmest se når jeg har det hele
:)



JonZ (23-05-2005)
Kommentar
Fra : JonZ


Dato : 23-05-05 09:38

> Jeg er ikke sikker på om det hjælper, men har en anelse om at din ASP-side
> ikke opdager at det er et tal din database leverer tilbage.
> Skriv om det hjælper :)
> Hvis det ikke gør, så prøv at smide HELE sidens kode herind. Det kunne være
> din redirect som er forkert, men det kan jeg nemmest se når jeg har det hele
> :)
>
>
Hej Casper

Det gav det samme resultat, jeg prøver at smide hele koden.

<%
dim DSN
dim strSQL
dim rs
dim RedirectPage

' Databaseforbindelse
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("databaser/navne.mdb")
Conn.Open DSN

' SQL forespørgsel
strSQL = "Select count (brugernavn) from medlemmer Where BrugerNavn = '" &
replace(Request.Form("UserID"), "'", "''") &"' AND PassWord = '" &
replace(Request.Form("pass"), "'", "''") &"'"

' Udfør forespørgsel
Set rs = Conn.Execute(strSQL)

'response.write(rs(0))
'response.end

'password tjek
if rs(0)*1 = 1 Then
Session("login") = "JA"
Session.Timeout = 30
Session("username") = Request.Form("UserID")
RedirectPage = "loggetind.asp"
else
'forkert password ELLER brugernavn
Session("login") = "NEJ"
Session.Timeout = 30
RedirectPage = "fejl.asp"
end if

rs.Close
Set rs = Nothing
Conn.Close
Set Conn = Nothing

'efter databaseforbindelsen er lukket ned, videresender vi til den korrekte
side.
response.redirect "loggetind.asp"
%>

Hilsen JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Tomasz Otap (23-05-2005)
Kommentar
Fra : Tomasz Otap


Dato : 23-05-05 10:06

JonZ wrote:
> 'efter databaseforbindelsen er lukket ned, videresender vi til den korrekte
> side.
> response.redirect "loggetind.asp"
> %>

Aha - nemt nok, når man ser det hele. Bemærk, at du i sidste linie
sender folk videre til loggetind.asp uanset hvad resultatet blev. Den
sidste linie skal naturligvis være:

response.redirect RedirectPage

t

JonZ (23-05-2005)
Kommentar
Fra : JonZ


Dato : 23-05-05 11:15

Tomasz Otap wrote in dk.edb.internet.webdesign.serverside.asp:
> JonZ wrote:
> > 'efter databaseforbindelsen er lukket ned, videresender vi til den korrekte
> > side.
> > response.redirect "loggetind.asp"
> > %>
>
> Aha - nemt nok, når man ser det hele. Bemærk, at du i sidste linie
> sender folk videre til loggetind.asp uanset hvad resultatet blev. Den
> sidste linie skal naturligvis være:
>
> response.redirect RedirectPage
>
> t

Tusind tak Thomas

Nu virker det. )

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

JonZ (23-05-2005)
Kommentar
Fra : JonZ


Dato : 23-05-05 11:18

Hej Casper

Ham Thomas kunne lige se hvad der var galt, det kunne du sikkert også hvis du
havde set hele koden, men du skal have mange tusind tak for hjælpen. Var godt
nok lige ved at opgive.

Et sidste spørgsmål, jeg kunne godt tænke mig at blive lidt bedre til det her
asp, har du et godt råd eller måske en bog du selv synes kunne være mig en
hjælp?

Men igen tusind tak for hjælpen.

Hilsen JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Casper Bang (23-05-2005)
Kommentar
Fra : Casper Bang


Dato : 23-05-05 15:09

> Ham Thomas kunne lige se hvad der var galt, det kunne du sikkert også hvis
> du
> havde set hele koden, men du skal have mange tusind tak for hjælpen. Var
> godt
> nok lige ved at opgive.

:)


> Et sidste spørgsmål, jeg kunne godt tænke mig at blive lidt bedre til det
> her
> asp, har du et godt råd eller måske en bog du selv synes kunne være mig en
> hjælp?

Mit bedste råd er at blive ved med at lege med det.
Nu vil jeg tro at du efterhånden har lidt styr på databaseadgang - leg mere
med det. Begynd eventuelt at programmere en gæstebog - bare for at lære det.
Af bøger... jeg er ikke den store tilhænger af bøger; fortrækker at finde et
eksempel eller to på nettet. Men mon ikke en anden i gruppen kender nogle
gode bøger.

Held og lykke med det.



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


Dato : 22-05-05 08:00

Casper Bang skrev:

> Ulempen ved den metode, er at man ikke kan se om det er
> kodeordet eller brugernavnet der er forkert...

Det er sikkerhedsmæssigt en god ting. Hvis en hacker kan se at han
har fat i et gyldigt brugernavn, vil han have langt lettere ved at
skaffe sig adgang (nu skal der kun gættes én kode).

Jeg kender ingen større sites der afslører om det er brugernavnet
eller adgangskoden man har tastet forkert.


> Jeg ville dog i det tilfælde nok lave en COUNT på
> tabellen i stedet; at returnere brugernavn og password er lige
> gyldigt når de data ikke bruges til noget.

Jeg er enig i at der ikke er nogen grund til at hente brugernavn og
adgangskode i select-listen, hvis man bruger dem i where-listen.
Jeg henter til gengæld ofte andre oplysninger - fx brugerens navn,
brugerID eller evt. rettigheder med den forespørgsel der tjekker
login. Disse oplysninger er ofte rare at have fast tilgængelige (fx
i en sessionvariabel), og de kan lige så godt hentes med det samme.
--
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

Casper Bang (22-05-2005)
Kommentar
Fra : Casper Bang


Dato : 22-05-05 11:52

> Jeg kender ingen større sites der afslører om det er brugernavnet
> eller adgangskoden man har tastet forkert.

Nej, det kan du godt have ret i :)



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


Dato : 22-05-05 22:42

JonZ skrev:

> Gad nok vide hvad det siger dig

Vis os hellere hvilken sql-sætning du kører (prøv at skrive strSQL
i stedet for rs(0))
--
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

JonZ (23-05-2005)
Kommentar
Fra : JonZ


Dato : 23-05-05 09:41

> Vis os hellere hvilken sql-sætning du kører (prøv at skrive strSQL
> i stedet for rs(0))

Hvis jeg gør det får jeg følgende fejl:
Typer stemmer ikke overens: '[string: "Select count (bruger"]'
/eget/login.asp, line 23

Hilsen JonZ

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jens Gyldenkærne Cla~ (23-05-2005)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 23-05-05 10:31

JonZ skrev:

> Hvis jeg gør det får jeg følgende fejl:
> Typer stemmer ikke overens: '[string: "Select count (bruger"]'
> /eget/login.asp, line 23

Udskriv sql-sætningen før du kører den (du kan evt. bare udkommentere
linjen her:

' Set rs = Conn.Execute(strSQL)

--
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 : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste