---
title: "inloggning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/9623-inloggning"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "maniac"
published: "2001-05-18T19:25:00.000Z"
updated: "2001-05-20T20:56:00.000Z"
replies: 23
views: 354
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/9623-inloggning"
---

# inloggning

_Sida 1 av 2._

## #1 — maniac, 2001-05-18T19:25Z

hur ska denna kod se ut för att man inte ska kunna använda tex. användare nr1s användarnamn och användare nr2s lösenord?

```
<%	Set Connect = Server.CreateObject("ADODB.Connection")
	Connect.Open "databas"

	Set RecSet = Server.CreateObject("ADODB.Recordset") %>

<% '====================================================================================================================== %>
<% ' Kontrollera användarnamn, lösenord och behörighet %>
<% '====================================================================================================================== %>

<% Visa = "SELECT * FROM tbMembers"
   RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic

	X = FALSE

	Do Until X = TRUE OR RecSet.EOF

	If RecSet("strUser") = Request.Form("Username") Then
	X = TRUE
	Exit Do
	End If

	RecSet.MoveNext

	Loop

	If X = TRUE Then

		Y = FALSE
		Do Until Y = TRUE OR RecSet.EOF

		If RecSet("strPass") = Request.Form("password") Then
		Y = TRUE
		Exit Do
		End If

		RecSet.MoveNext

		Loop

	End If

	If X = FALSE Then
	Response.Write "Wrong username!"

	ElseIf Y = FALSE Then
	Response.Write "Wrong password!"

	End If

	If X = TRUE AND Y = TRUE Then %>

<% session("username") = RecSet("strUser") %>
<% session("login") = "yes" %>

<%	If session("login") = "yes" then %>

<% Response.Redirect "admin_default.asp" %>

<% End If %>

<% Else %>

<%	End If
	RecSet.Close
	Connect.Close %>
```

Permalänk: https://www.webforum.nu/p/9623

## #2 — @nders, 2001-05-18T19:43Z

jag hatar idg. idgs inloggningsscript är sämst i hela världen.

skit, skit, skit, skit. avföring, exkrement.

```
<% 
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databas"

Visa = "SELECT * FROM tbMembers where strUser = '" & request.form("username") & "' and strPass = '" & request.form("password") & "'"
set RecSet = Connect.execute(visa)

if RecSet.eof then
response.write "Du har angett fel användarnamn eller lösenord!"
else
session("username") = RecSet("strUser")
session("login") = "yes"
end if

RecSet.Close
Connect.Close

if session("login") = "yes" then Response.Redirect "admin_default.asp"

%>
```

kortare, smartare, säkrare och framför allt inte fel.

Permalänk: https://www.webforum.nu/p/269500

## #3 — maniac, 2001-05-18T20:45Z

den står bara och tuggar efter jag fyllt i formuläret :/

Permalänk: https://www.webforum.nu/p/269501

## #4 — @nders, 2001-05-19T07:49Z

hur ser hela din kod ut nu då?

du förstod att den koden jag skrev var en ersättning för *hela* idg-skräpet?

Permalänk: https://www.webforum.nu/p/269502

## #5 — maniac, 2001-05-19T10:58Z

Jag fick höra att det inte var så bra att kolla en session direkt så jag tog bort den...

```
<html>

<% 
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databas"

Visa = "SELECT * FROM tbMembers where strUser = '" & request.form("username") & "' and strPass = '" & request.form("password") & "'"
Set RecSet = Connect.Execute(visa)

if RecSet.eof then
response.write "Wrong username or password"
else
session("username") = RecSet("strUser")
session("login") = "yes"
end if

RecSet.Close
Connect.Close

Response.Redirect "admin_default.asp"

%>

</html>
```

\[Redigerat av maniac den 19 maj 2001\]

Permalänk: https://www.webforum.nu/p/269503

## #6 — jepsO, 2001-05-19T11:15Z

I din kod skickas du vidare till admin_default.asp även om du skrivit in fel användarnamn/lösenord. Att det skulle vara dumt att kolla en session direkt låter bara befängt. Kör med @nders kod.

Sorgligt att så många börjar med IDG:s guide (inklusive jag själv) - man upptäcker sedan hur idiotiskt kodat det mesta är hos dem :(

Permalänk: https://www.webforum.nu/p/269504

## #7 — maniac, 2001-05-19T11:20Z

jepso det var hans kod från början och den fungerade inte. kan du inte fixa till min så den är rätt ? :)

förresten var det Vide som sa det där om att det var dåligt att kolla sessions. han brukar ju ha rätt :)

Permalänk: https://www.webforum.nu/p/269505

## #8 — crisse6, 2001-05-19T11:51Z

jag hade också idg´s skript, men som sagt det är värdelöst... skriver du in ett username (ditt te x) om du skriver in någon annans lösen = du kommer in x(

skit!

jag tog brw´s skript och fick hjälp av asp-kungarna här på wf... PatrikB oså... 
kolla:

```
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open ("driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("users.mdb"))

Visa = "SELECT * FROM users WHERE Username='" & Request.Form("Username") & "' AND Password='" & Request.Form("Password") & "'"
Set RecSet = Connect.Execute(Visa)

If RecSet.EOF Then
	Response.Redirect("om man skriver fel.asp")
Else

	Session("Username") = RecSet("Username")
	Session("Password") = RecSet("Password")
	Session("id") = RecSet("id")
	
	'##### ditt usernam = om den känner av att du te x med ett visst username så kommer du till adminsidan!
	If Session("username") <> "ditt username" Then
		Response.Redirect("sidan där medlemmar kommer till.asp")
	Else
	'######## Sidan för adminen, för ändringar mm #######
		Response.Redirect "adminsidan.asp"
	End If

End If

'## -- clean up --
	RecSet.Close
Set RecSet = nothing

	Connect.Close
Set Connect = nothing
%>
```

sedan en include, inte på den sidan som har koden ovan! (då tuggar den)
denna include koden:

```
<%
If Session("username") = "" Then
Response.Redirect "test.asp"
ElseIf Session("password") = "" Then
Response.Redirect "test.asp"
End If
%>
```

och sedan en annan include som ligger på adminsidan för att försäkra sig om någon inte adminare försöker ta sig in har du denn kod i includen, men bara på dom sidor som är admin!

```
<% 
Session.Timeout = 10

If Session("username") <> "ditt valda username" Then
Response.Redirect("start.asp")
End If
%>
```

Permalänk: https://www.webforum.nu/p/269506

## #9 — jepsO, 2001-05-19T17:28Z

Kom iofs på vad Vide kan ha menat. Om en annan site med ASP-inloggning använder en likadan cookie kan det innebära att man loggas in på din site med.
Såhär:

```
<% 
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databas"
Visa = "SELECT * FROM tbMembers where strUser = '" & request.form("username") & "' and strPass = '" & request.form("password") & "'"
set RecSet = Connect.execute(visa)

if RecSet.eof then
response.write "Du har angett fel användarnamn eller lösenord!"
else
session("username") = RecSet("strUser")
session("login") = "yes"
login="yes"
end if

RecSet.Close
Connect.Close

if login = "yes" then Response.Redirect "admin_default.asp"
%>
```

Enda skillnaden är att du använder en vanlig variabel istället för en session.

Permalänk: https://www.webforum.nu/p/269507

## #10 — PatrikB, 2001-05-19T17:28Z

> Jag fick höra att det inte var så bra att kolla en session direkt så jag tog bort den...

Varför då sätta någon session överhuvudtaget om du inte ska "kolla" den/i den?

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/269508

## #11 — @nders, 2001-05-19T17:42Z

> Om en annan site med ASP-inloggning använder en likadan cookie kan det innebära att man loggas in på din site med.

risken är obefintlig.

någon som kan förstå varför min kod ovan inte är funkis förresten?

Permalänk: https://www.webforum.nu/p/269509

## #12 — jepsO, 2001-05-19T18:39Z

Nej, är så gott som identiskt med mina fullt fungerande inloggningsscript.

Skulle gissa att maniac kanske implementerad den fel i sin kod.

Permalänk: https://www.webforum.nu/p/269510

## #13 — maniac, 2001-05-20T13:54Z

@nders...jag tror inte det var din kod det var fel på :)
när jag ändrade på sidan man skickades till så funkade jeps0s script..så det var nog det som var problemet.

Permalänk: https://www.webforum.nu/p/269511

## #14 — Vide, 2001-05-20T14:15Z

> Kom iofs på vad Vide kan ha menat. Om en annan site med ASP-inloggning använder en likadan cookie kan det innebära att man loggas in på din site med.

Detta gäller endast om den andra sajten ligger på samma webbplats (inte webbserver).

Jag skulle nog använt @nders kod, men ändrat på en liten detalj (inte kritisk):

```
<%
Response.buffer = true
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "databas"
Visa = "SELECT * FROM tbMembers where strUser = '" & request.form("username") & "' and strPass = '" & request.form("password") & "'"
set RecSet = Connect.execute(visa)

if RecSet.eof then
response.write "Du har angett fel användarnamn eller lösenord!"
else
session("username") = RecSet("strUser")
session("login") = "yes"
Response.Redirect "admin_default.asp"
end if

RecSet.Close
Connect.Close
%>
```

Tror knappast det gör skillnad dock... :l

Permalänk: https://www.webforum.nu/p/269512

## #15 — @nders, 2001-05-20T15:56Z

vide, varför vill du göra en response.redirect innan du stänger objekten?

Permalänk: https://www.webforum.nu/p/269513

## #16 — jepsO, 2001-05-20T16:15Z

Bra fråga :)

Permalänk: https://www.webforum.nu/p/269514

## #17 — Vide, 2001-05-20T16:40Z

Är det inte så att hela sidan precesseras klart innan all response tillförs om man kör buffer = true?

Rätta mig om jag har fel, då vill jag gärna veta ;)

Permalänk: https://www.webforum.nu/p/269515

## #18 — @nders, 2001-05-20T17:14Z

ok, rätta mig om jag har fel... ;)

syftet med response.buffer = true måste väl ändå vara att ingenting skickas till brusaren innan sidan är helt processad.

inte tills varje kodrad är läst jag kan inte se hur servern kan komma till .close-raderna?

jag tolkar det som så att ingenting skickas till klienten innan servern är klar och har processat hela admin_default.asp.

jag tror vide har fel, men är inte helt säker.

därför ropar jag högt och ljudligt: **emission!!! LarsG!!!** hilfe!

Permalänk: https://www.webforum.nu/p/269516

## #19 — LarsG, 2001-05-20T17:25Z

Jo, det stämmer väl (att response.redirect utförs omedelbums). 

Det som behandlas särt är session.abandon som inte utförs förrän hela sidan har processerats.

Permalänk: https://www.webforum.nu/p/269517

## #20 — PatrikB, 2001-05-20T18:18Z

Jepp, likaså utförs dessa direkt innan hela sidan processat klart:

Response.Flush
Response.End

finns säkert ngt mer :o

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/269518

---

Tråden på webben: https://www.webforum.nu/amne/asp/9623-inloggning  
Nästa sida: https://www.webforum.nu/amne/asp/9623-inloggning/page2.md
