---
title: "[Inloggning samt utloggning]"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/45367-inloggning-samt-utloggning"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "trexter.com"
published: "2002-06-06T18:41:52.000Z"
updated: "2002-06-07T11:19:20.000Z"
replies: 27
views: 618
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/45367-inloggning-samt-utloggning"
---

# [Inloggning samt utloggning]

_Sida 1 av 2._

## #1 — trexter.com, 2002-06-06T18:41Z

Med hjälp från webforum har jag nu lyckats fixa en registrering på min hemsida så att man kan bli medlem. Alla medlemmarna och deras lösen lagras i en db och scriptet siger till då någon försöker registrera samma användare två gånger. Så långt, allt väl... men sen kommer jag till nästa krux; inloggning och utloggning!

Skulle någon kunna posta en bit kod där man i db:n jämför användarnamn och lösen och om dessa är korrekta så redirectas man!

Skulle vara hemskt tacksamt!

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

## #2 — @nders, 2002-06-06T18:49Z

Jag utgår ifrån att du har ett connectionobjekt, jag har kallat det för objConn. Det kan se ut någonting sånt här:

```
strUserName = Replace(Request.Form("username"), "'", "''")
strPassword = Replace(Request.Form("password"), "'", "''")
blnInloggad = False

strSQL = "SELECT 1 FROM tblUsers WHERE fldUserName = '" & strUserName & "' AND fldPassword = '" & strPassword & "'"
set objRS = objConn.Execute (strSQL)
If not objRS.EOF then
     ' jippi, inloggningen lyckades
      blnInloggad = True
Else
     ' näppeligen!
     ' gör något annat
End If
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

If blnInloggad then Response.redirect "Secure.asp"
```

Givetvis bör man sätta antingen sessions eller en cookie som hela tiden känner till inloggningsstatus, men det lämnas som övning. ;)

OBS! Koden är mycket otestad och skrevs ur huvudet. Du får ändra så tabell- och fältnamn stämmer.

Mvh,

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

## #3 — cyprys, 2002-06-06T18:51Z

Jag har två filer för det här. Väldigt enkelt och tydligt.

```
login.asp
-------------------------------
function teckenkoll(x)
x = REPLACE(x, "'", "''")
x = REPLACE(x, """, """")
end function

namn = teckenkoll(request.form("namn"))
pass = teckenkoll(request.form("pass"))

SET RS = conn.execute("SELECT namn, pass FROM users WHERE namn = '"&namn&"' AND pass = '"&pass&"' ")
if RS.eof then
 ' response.redirect("tillbax")
else
 session("inloggad") = true
 response.redirect("admin.asp")
end if

logout.asp
---------------------------
session.abandon
response.redirect("index.asp")
```

Sen kan du självklart själv bestämma vilka olika sessions du vill använda.

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

## #4 — trexter.com, 2002-06-06T18:55Z

Ok, tack Anders och Cyprus... men jag undrar vad den här koden ska vara bra för: 

> *Ursprungligen av cyprys*  
>
>
> **```
> function teckenkoll(x)
> x = REPLACE(x, "'", "''")
> x = REPLACE(x, """, """")
> end function
> 
> namn = teckenkoll(request.form("namn"))
> pass = teckenkoll(request.form("pass"))
> ```**

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

## #5 — LAMP, 2002-06-06T19:08Z

För att escapa enkla citattecken, som kanske är bekant kan de ställa till med en hel del brydderi.

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

## #6 — trexter.com, 2002-06-06T19:11Z

> *Ursprungligen av LAMP*  **För att escapa enkla citattecken, som kanske är bekant kan de ställa till med en hel del brydderi.**

Tack, det ska jag lägga på minnet! Låter som någonting som är bra att kunna...

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

## #7 — LAMP, 2002-06-06T19:11Z

bla sådana här tråkigheter:

<http://www.webforum.nu/showthread.php?s=&threadid=43076>

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

## #8 — SPiN, 2002-06-06T19:12Z

Enda kruxet är att funktionen inte fungerar. ;)

cyprys verkar ha glömt att returnera den modifierade variabeln **x**, plus att det är fel i den andra Replace ():en:

```
Function teckenkoll ( x )
     x = Replace ( x, "'", "&amp;#39;" )
     x = Replace ( x, """", "&amp;quot;" )

     teckenkoll = x
End Function
```

Så hade jag gjort, bytt ut tecknen till deras HTML-entiteter. :)

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

## #9 — trexter.com, 2002-06-06T19:20Z

> *Ursprungligen av SPiN*  Enda kruxet är att funktionen inte fungerar. ;)
> 
> cyprys verkar ha glömt att returnera den modifierade variabeln **x**, plus att det är fel i den andra Replace ():en:
>
>
> ```
> Function teckenkoll ( x )
>      x = Replace ( x, "'", "&amp;#39;" )
>      x = Replace ( x, """", "&amp;quot;" )
> 
>      teckenkoll = x
> End Function
> ```
>
> 
> Så hade jag gjort, bytt ut tecknen till deras HTML-entiteter. :)

Men borde det inte bara vara 3 " i den andra replacen?

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

## #10 — LarsG, 2002-06-06T19:22Z

Den andra replacen skall tas bort. Det är bara ' som man behöver fördubbla innan man använder en variabel i ett sql-statement.

(I VBS så är """" en sträng som innehåller en ")

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

## #11 — cyprys, 2002-06-06T19:27Z

:r

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

## #12 — LAMP, 2002-06-06T19:33Z

> *Ursprungligen av SPiN*  Enda kruxet är att funktionen inte fungerar. ;)
> 
> cyprys verkar ha glömt att returnera den modifierade variabeln **x**, plus att det är fel i den andra Replace ():en:
>
>
> ```
> Function teckenkoll ( x )
>      x = Replace ( x, "'", "&amp;#39;" )
>      x = Replace ( x, """", "&amp;quot;" )
> 
>      teckenkoll = x
> End Function
> ```
>
> 
> Så hade jag gjort, bytt ut tecknen till deras HTML-entiteter. :)

Använder man server.HTMLEncode på utdatan så är det smart att replaca med 2 ' istället för att använda HTML-entiteter.

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

## #13 — trexter.com, 2002-06-07T10:09Z

Ok, jag har gjort mitt bästa för att trixa ihop en inloggningsgrej men tyvärr så blir det inte riktigt rätt. Felmeddelande:

Microsoft OLE DB Provider for ODBC Drivers error '80040e10' 

\[Microsoft\]\[ODBC Microsoft Access Driver\] Too few parameters. Expected 2. 

/tjanster/inloggning.asp, line 11 

Kod:

```
<html>
<%
strDBPathUsers = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("\databas\main.mdb")

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

Set RecSet = Server.CreateObject("ADODB.Recordset")
strCheck = "SELECT username, password FROM medlemmar WHERE namn = '"&username&"' AND pass = '"&password&"' "
[b]RecSet.Open strCheck, Conn[/b]

Function teckenkoll ( x )
     x = Replace ( x, "'", "&#39;" )
     teckenkoll = x
End Function

username = teckenkoll(request.form("username"))
password = teckenkoll(request.form("password"))

if RS.eof then
 ' response.redirect("tillbax")
else
 session("inloggad") = true
 response.redirect("admin.asp")
end if
%>
</html>
```

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

## #14 — @nders, 2002-06-07T10:11Z

Det verkar vara två tabell- eller fältnamn som är felstavade / felskrivna. Kontrollera att de fält du försöker använda verkligen finns i tabellen, och att all stavning stämmer.

Du har använt olika namn i sql-frågan för både användarnamn och lösenord, vad gäller?

```
strCheck = "SELECT username, password FROM medlemmar WHERE namn = '"&username&"' AND pass = '"&password&"' "
```

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

## #15 — aleborg, 2002-06-07T10:12Z

Du måste lägga in username och password i strängar innan du kollar strängarna mot databasen!

\<%
strDBPathUsers = "DRIVER={Microsoft Access Driver (\*.mdb)}; DBQ=" & Server.MapPath("\\databas\\main.mdb")

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

username = teckenkoll(request.form("username"))
password = teckenkoll(request.form("password"))
Set RecSet = Server.CreateObject("ADODB.Recordset")
strCheck = "SELECT username, password FROM medlemmar WHERE namn = '"&username&"' AND pass = '"&password&"' "
RecSet.Open strCheck, Conn

Function teckenkoll ( x )
     x = Replace ( x, "'", "'" )
     teckenkoll = x
End Function

if RS.eof then
 ' response.redirect("tillbax")
else
 session("inloggad") = true
 response.redirect("admin.asp")
end if
%\>

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

## #16 — icaaq, 2002-06-07T10:18Z

Password kan vara namnskyddat.....dvs Klammra\[\] eller byt namn på det fältet

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

## #17 — doggelito, 2002-06-07T11:01Z

Jag tror vi var inne på att man skulle göra replace till två enkelfnuttar också. ;)

```
Function teckenkoll ( x ) 
x = Replace ( x, "'", "''" ) 
teckenkoll = x 
End Function
```

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

## #18 — trexter.com, 2002-06-07T11:05Z

Jo, namnen i SQL-satsen stämde inte med dem i databasen men nu till nästa problem!  ;)  Det står; Object required: " på denna rad:
if RS.eof then
... och jag frstår inte riktigt vad som menas med detta!

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

## #19 — doggelito, 2002-06-07T11:07Z

det ska va RecSet.EOF

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

## #20 — trexter.com, 2002-06-07T11:07Z

> *Ursprungligen av doggelito*  Jag tror vi var inne på att man skulle göra replace till två enkelfnuttar också. ;)
>
> ```
> Function teckenkoll ( x ) 
> x = Replace ( x, "'", "''" ) 
> teckenkoll = x 
> End Function
> ```

Det ser lite onstigt ut där ja, men i den riktiga koden så är ' ersatt av koden för denna symbol... därför!

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

---

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