/ 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
? omkring kode
Fra : Thor


Dato : 05-02-02 15:55

jeg har lavet 2 sider den ene er bare en formular og den anden er koden til
formularen.

Jeg skulle gerne få det til at virke, så mans kal skrive brugernavn og pass,
og som så skal gå ind i et acces DOC og finde om brugernavn og pass passer.

Men jeg har da fået det til at virke nogen lunde, men kun med den record der
står øvers i acces DOC. Når jeg prøver med de andre kan jeg ikke få den til
at god kende det.

MIN KODE FIL:

<html>
<title>tid og dato</title>
<head>
</head>
<body>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/login.mdb")
Conn.Open DSN

strSQL = "Select * From login"
Set rs = Conn.Execute(strSQL)

' Tjek om login og password er korrekte
If Request.Form("login") = rs("brugernavn") AND Request.Form("password") =
rs("pass") Then

' Hvis korrekt sættes session til JA
Session("login") = "JA"
Session.Timeout = 30
Response.Redirect "menu.asp"
Else

' Hvis forkert sættes ingen session til NEJ
Session("login") = "NEJ"
Response.Redirect "default1.asp"

End If


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

</body>
</html>

Nogle der gidder hjælpe, har rodet med det i lang tid

MVH THor



 
 
Cocktail-Henning (05-02-2002)
Kommentar
Fra : Cocktail-Henning


Dato : 05-02-02 16:29

Thor wrote in dk.edb.internet.webdesign.serverside.asp:
> jeg har lavet 2 sider den ene er bare en formular og den anden er koden til
> formularen.
>
> Jeg skulle gerne få det til at virke, så mans kal skrive brugernavn og pass,
> og som så skal gå ind i et acces DOC og finde om brugernavn og pass passer.
>
> Men jeg har da fået det til at virke nogen lunde, men kun med den record der
> står øvers i acces DOC. Når jeg prøver med de andre kan jeg ikke få den til
> at god kende det.
>
> MIN KODE FIL:
>
> <html>
> <title>tid og dato</title>
> <head>
> </head>
> <body>
> <%
&gt; ' Databaseforbindelse - husk at angive sti til din database
&gt; Set Conn = Server.CreateObject("ADODB.Connection")
&gt; DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
&gt; DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/login.mdb")
&gt; Conn.Open DSN
&gt;
&gt; strSQL = "Select * From login"
&gt; Set rs = Conn.Execute(strSQL)
&gt;
&gt; ' Tjek om login og password er korrekte
&gt; If Request.Form("login") = rs("brugernavn") AND Request.Form("password")
=
&gt; rs("pass") Then
&gt;
&gt; ' Hvis korrekt sættes session til JA
&gt; Session("login") = "JA"
&gt; Session.Timeout = 30
&gt; Response.Redirect "menu.asp"
&gt; Else
&gt;
&gt; ' Hvis forkert sættes ingen session til NEJ
&gt; Session("login") = "NEJ"
&gt; Response.Redirect "default1.asp"
&gt;
&gt; End If
&gt;
&gt;
&gt; ' Luk databaseforbindelse
&gt; Conn.Close
&gt; Set Conn = Nothing
&gt; %>
>
> </body>
> </html>
>
> Nogle der gidder hjælpe, har rodet med det i lang tid
>
> MVH THor
>
>
Hej Thor,
så vidt jeg kan se HENTER du en masse linier ind, men LÆSER kun den første
linie....

og så skulle det jo være sært om det lige er den du skal bruge...

i stedet for at loope igennem (while not eof...)
så ku du jo nøjes med at selecte den/dem,
hvor brugernavn = login...!
og så se om DEN linie har samme pass ?!?!?

altså...:
strSQL = "Select * From login where brugernavn=" + Request.Form("login")

Håber det hjalp!!!


Cocktail (ikke før kl 1700!)


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

Janus Klok Lauritsen (05-02-2002)
Kommentar
Fra : Janus Klok Lauritsen


Dato : 05-02-02 16:59

Og så skal du lige huske ALTID at escape ' når du bruger en variabel i din
SQL streng, ellers giver du de onde hackere mulighed for at kører deres egen
sql. Desuden skulle koden vist se sådan ud:

strSQL = "Select * From login where brugernavn='" +
Replace(Request.Form("login"),"'","''") &"'"

Nemlig med ' omkring din sql-streng.
Er der egentlig forskellig performance ved brug af brugernavn='var' og
brugernavn LIKE 'var' ?
Mvh
Janus
> altså...:
> strSQL = "Select * From login where brugernavn=" + Request.Form("login")
>
> Håber det hjalp!!!



Cocktail-Henning (05-02-2002)
Kommentar
Fra : Cocktail-Henning


Dato : 05-02-02 17:18

Janus Klok Lauritsen wrote in dk.edb.internet.webdesign.serverside.asp:
> Og så skal du lige huske ALTID at escape ' når du bruger en variabel i din
> SQL streng, ellers giver du de onde hackere mulighed for at kører deres
egen
> sql. Desuden skulle koden vist se sådan ud:
>
> strSQL = "Select * From login where brugernavn='" +
> Replace(Request.Form("login"),"'","''") &"'"
>
> Nemlig med ' omkring din sql-streng.
> Er der egentlig forskellig performance ved brug af brugernavn='var' og
> brugernavn LIKE 'var' ?
> Mvh
> Janus
> > altså...:
> > strSQL = "Select * From login where brugernavn=" +
Request.Form("login")
> >
> > Håber det hjalp!!!
>
>
Pyha, Janus,
det var godt du huskede den der gnyf omkring tekstvariablen!
ellers kunne han da ha fortsat med problemer...
Og godt tip med "at escape var" Tak for den!!

Til gengæld kan jeg fortælle, at "like" i stedet for "=" først trækker tænder
ud ved betragtelige mængder, lange strings og mange af dem!

men ved access systemer på baser under 4-5 mega ville jeg bruge dem i
flæng...

Mvh Cocktail
(skål i cola...)


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

Thor (05-02-2002)
Kommentar
Fra : Thor


Dato : 05-02-02 17:38

dvs sige min kode skal se sådan her ud:
<html>
<title>tid og dato</title>
<head>
</head>
<body>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/login.mdb")
Conn.Open DSN

strSQL = "Select * From login where brugernavn='"
+Replace(Request.Form("login"),"'","''") &"'"
Set rs = Conn.Execute(strSQL)

' Tjek om login og password er korrekte
If Request.Form("login") = rs("brugernavn") AND Request.Form("password")
=rs("pass") Then

' Hvis korrekt sættes session til JA
Session("login") = "JA"
Session.Timeout = 30
Response.Redirect "menu.asp"
Else

' Hvis forkert sættes ingen session til NEJ
Session("login") = "NEJ"
Response.Redirect "default1.asp"

End If


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

</body>
</html>





Vaeske (05-02-2002)
Kommentar
Fra : Vaeske


Dato : 05-02-02 22:30

> Og så skal du lige huske ALTID at escape ' når du bruger en variabel i din
> SQL streng, ellers giver du de onde hackere mulighed for at kører deres
egen
> sql. Desuden skulle koden vist se sådan ud:
>
Undskyld jeg blander mig, men jeg kunne godt tænke mig at vide om min
sql-streng er sikker.

Følgende haves:

<snip>

If Request.ServerVariables("Content_Length") <> 0 Then
bid = Trim(Request.Form("bid"))
pw = Trim(Request.Form("pw"))
Else
bid = Trim(Request("bid"))
pw = Trim(Request("pw"))
End if

If len(bid)>0 and len(pw)>0 Then
strSQL = "SELECT * FROM LOGIN WHERE (Bruger_ID ='"&bid&"') AND
(Password='"&pw&"')"
Set rs = myConn.Execute(strSQL)

<snip>


Hilsen

Vaeske



Jakob Møbjerg Nielse~ (08-02-2002)
Kommentar
Fra : Jakob Møbjerg Nielse~


Dato : 08-02-02 09:54

> If Request.ServerVariables("Content_Length") <> 0 Then
> bid = Trim(Request.Form("bid"))
> pw = Trim(Request.Form("pw"))
> Else
> bid = Trim(Request("bid"))
> pw = Trim(Request("pw"))
> End if

Her behøver du ikke andet end:
bid = Trim(Replace(Request("bid"),"'","''"))
pw = Trim(Replace(Request("pw"),"'","''"))

Den tager alligevel det hele med.

> If len(bid)>0 and len(pw)>0 Then
> strSQL = "SELECT * FROM LOGIN WHERE (Bruger_ID ='"&bid&"') AND
> (Password='"&pw&"')"

Efter ovenstående ændring vil den være sikker. Det hele handler om at
udskifte alle ' med ''.

--
Jakob Møbjerg Nielsen
jakob@dataloger.dk
"Hey! He reminds me of someone who looks just like him. - Me"



Thor (05-02-2002)
Kommentar
Fra : Thor


Dato : 05-02-02 17:43

har fået det til at virke takket være den hjælp jeg har fået af de to, men
jeg har nu prøvet at skrive et rigtig brugernavn og et forkert pass, kan man
så ikke få siden til at komme frem med en side hvor der står du intastet
noget forkert, istædet for en fejl medelse

MVH Thor
"Thor" <thor1986@post.cybercity.dk> skrev i en meddelelse
news:3c5ff256$0$62872$edfadb0f@dspool01.news.tele.dk...
> jeg har lavet 2 sider den ene er bare en formular og den anden er koden
til
> formularen.
>
> Jeg skulle gerne få det til at virke, så mans kal skrive brugernavn og
pass,
> og som så skal gå ind i et acces DOC og finde om brugernavn og pass
passer.
>
> Men jeg har da fået det til at virke nogen lunde, men kun med den record
der
> står øvers i acces DOC. Når jeg prøver med de andre kan jeg ikke få den
til
> at god kende det.
>
> MIN KODE FIL:
>
> <html>
> <title>tid og dato</title>
> <head>
> </head>
> <body>
> <%
> ' Databaseforbindelse - husk at angive sti til din database
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/login.mdb")
> Conn.Open DSN
>
> strSQL = "Select * From login"
> Set rs = Conn.Execute(strSQL)
>
> ' Tjek om login og password er korrekte
> If Request.Form("login") = rs("brugernavn") AND Request.Form("password") =
> rs("pass") Then
>
> ' Hvis korrekt sættes session til JA
> Session("login") = "JA"
> Session.Timeout = 30
> Response.Redirect "menu.asp"
> Else
>
> ' Hvis forkert sættes ingen session til NEJ
> Session("login") = "NEJ"
> Response.Redirect "default1.asp"
>
> End If
>
>
> ' Luk databaseforbindelse
> Conn.Close
> Set Conn = Nothing
> %>
>
> </body>
> </html>
>
> Nogle der gidder hjælpe, har rodet med det i lang tid
>
> MVH THor
>
>



Cocktail-Henning (06-02-2002)
Kommentar
Fra : Cocktail-Henning


Dato : 06-02-02 13:14

Thor wrote in dk.edb.internet.webdesign.serverside.asp:
> har fået det til at virke takket være den hjælp jeg har fået af de to, men
> jeg har nu prøvet at skrive et rigtig brugernavn og et forkert pass, kan
man
> så ikke få siden til at komme frem med en side hvor der står du intastet
> noget forkert, istædet for en fejl medelse
>
> MVH Thor

Mtja-eh,

når select ikke finder noget, (fordig brugernavn ikke findes ) så nytter det
ikke at lede efter værdierne i variablen.
Til gengæld finder systemet eof altså end of file...

så vi udvidder if'en med
....and (Not rs.EOF) ...

så vi kun tester værdierne, hvis de er der...!


Skål i vand!

Cocktail-henning



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

dvs Cocktail-Henni~ (06-02-2002)
Kommentar
Fra : dvs Cocktail-Henni~


Dato : 06-02-02 13:17

Thor wrote in dk.edb.internet.webdesign.serverside.asp:
> har fået det til at virke takket være den hjælp jeg har fået af de to, men
> jeg har nu prøvet at skrive et rigtig brugernavn og et forkert pass, kan
man
> så ikke få siden til at komme frem med en side hvor der står du intastet
> noget forkert, istædet for en fejl medelse
>
> MVH Thor

if (not rs.eof) then
.....
>If Request.Form("login") = rs("brugernavn") AND Request.Form("password") =
> rs("pass") Then
>
> ' Hvis korrekt sættes session til JA
> Session("login") = "JA"
> Session.Timeout = 30
> Response.Redirect "menu.asp"
> Else
>
> ' Hvis forkert sættes ingen session til NEJ
> Session("login") = "NEJ"
> Response.Redirect "default1.asp"
>
> End If

else
'der er ingen brugere med det brugernavn...!
end if

'husk denne endif !!!!

fortsat god fornøjelse!!!


c-henning


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

Janus Klok Lauritsen (06-02-2002)
Kommentar
Fra : Janus Klok Lauritsen


Dato : 06-02-02 13:24

Jo det kan du sagtens.
Jeg vil så egentlig foreslå dig at du laver din SQL hvor du finder en bruger
hvor login og pass er = det indtastede (Til forskel på nu, hvor du kun
checker på brugernavn)og så checker på rs.eof.
Hvis den er eof, ja så er der indtastet noget forkert og du kan udskrive at
der er indtastet noget forkert, ellers er brugeren logget ind.
Mvh
Janus

"Thor" <thor1986@post.cybercity.dk> wrote in message
news:3c600b8b$0$62847$edfadb0f@dspool01.news.tele.dk...
> har fået det til at virke takket være den hjælp jeg har fået af de to, men
> jeg har nu prøvet at skrive et rigtig brugernavn og et forkert pass, kan
man
> så ikke få siden til at komme frem med en side hvor der står du intastet
> noget forkert, istædet for en fejl medelse



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

Månedens bedste
Årets bedste
Sidste års bedste