---
title: "hur hämta en funktion!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/41072-hur-hämta-en-funktion"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "doggelito"
published: "2002-04-08T06:53:07.000Z"
updated: "2002-04-08T09:04:37.000Z"
replies: 12
views: 264
page: 1
pages: 1
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/41072-hur-hämta-en-funktion"
---

# hur hämta en funktion!

## #1 — doggelito, 2002-04-08T06:53Z

tjena!
på vilket sätt bör man hämta funktioner på?
ta denna som exempel

```
Function Login
Validname = LTrim(Request.Form("name"))
Validpassword = Ltrim(Request.Form("password"))
errors = 0
Set objConn = Connopen
strsql = "SELECT Username, Password, Userlevel FROM Usertbl "&_
"WHERE Username = '" & Validname & "' AND Password = '" & Validpassword & "' ;"
Set rs = objConn.execute(strsql)
	If rs.EOF Then
	errors = 1
	Else
	Session("Username") = rs("username")
	Session("Userlevel") = rs("userlevel")
	End If
Set objConn = Connclose
End Function
```

och hämtningen

```
If Request.Querystring("Login") = "yes" Then
Login
End If
```

inget fel kanske men förvirrande är det när man bara skriver Login, kan ju misstolkas med en tom variabel då och jobbigare blir det, ju fler man får.
ska man skriva på något annat sätt?

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

## #2 — skyman, 2002-04-08T07:03Z

Kanske såhär...

```
Function Login(name,password)
errors = 0
Set objConn = Connopen
strsql = "SELECT Username, Password, Userlevel FROM Usertbl "&_
"WHERE Username = '" & name& "' AND Password = '" & password& "' ;"
Set rs = objConn.execute(strsql)
If rs.EOF Then
return false
Else
return true
End If
Set objConn = Connclose
End Function
```

 
Sen i koden på lämpligt ställe.

```
if Login(Request.Form("name"),Request.Form("password") then
Response.write("inloggad")
[b]'sätt sessions[/b]
else
Response.write("ej inloggad")
end if
```

 Taget ur luften. :)
/r se flyttning av "sätt session"

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

## #3 — @nders, 2002-04-08T07:11Z

Jo, fast i VB-Script använder man inte return, skyman... ;)

Så här kan funktionen tänkas se ut:

```
Function Login(name,password)
errors = 0
Set objConn = Connopen
strsql = "SELECT Username, Password, Userlevel FROM Usertbl "&_
"WHERE Username = '" & name& "' AND Password = '" & password& "' ;"
Set rs = objConn.execute(strsql)
If rs.EOF Then
    blnTemp = false
Else
'sätt sessions
    blnTemp = true
End If
Set objConn = Connclose
Login = blnTemp
End Function
```

Mvh,

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

## #4 — doggelito, 2002-04-08T07:15Z

ja just ja! smart.  :) 
när jag tänker efter så händer det väl aldrig att man hämtar en funktion utan argument, inte så stor vits med funktionen då!  :h

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

## #5 — skyman, 2002-04-08T07:23Z

You´re right @nders...
När jag ska jag komma ihåg det? ;)
eller... när ska de ändras ;)

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

## #6 — skyman, 2002-04-08T07:31Z

en grej till

Om du ska ha med userlevel i sessions så är det nog bäst om du sätter sessions i funktionen istället... :)
För de fanns väl bara i databasen?

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

## #7 — doggelito, 2002-04-08T07:43Z

hur tusan flyttar jag sql-strängen, ska man inte kunna göra så här?

```
Function Login(name,password,strSql)
errors = 1
Set objConn = Connopen
Set rs = objConn.execute(strSql)
	If rs.EOF Then
    blnTemp = false
	Else
    blnTemp = true
	Session("Username") = rs(0)
	Session("Userlevel") = rs(2)
	End If
Set objConn = Connclose
Login = blnTemp
End Function

strSql = "SELECT Username, Password, Userlevel FROM Usertbl "&_
"WHERE Username = '" & name & "' AND Password = '" & password & "' ;"
if Login(request.form("name"),request.form("password"),strSql) then
```

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

## #8 — @nders, 2002-04-08T07:50Z

Jo, det ser lite knasigt ut dock.

För det första har variablerna name och password som du använder i SQL-frågan inge värden eftersom SQL-frågan numera skapas utanför funktionen. Du använder inte heller name och password i funktionen längre, så du behöver inte ha dem som parametrar.

Mvh,

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

## #9 — skyman, 2002-04-08T08:04Z

:)

Du kan ju skicka med sqlsträngen men utan WHERE om du måste och sen köra en while-loop i funktionen...

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

## #10 — doggelito, 2002-04-08T08:12Z

nu blev det överkurs för mig! :l 
tanken slog mig bara att man borde kunna använda samma funktion till en annan loginsida utan att behöva skriva om den.

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

## #11 — skyman, 2002-04-08T08:53Z

SQL-sträng:

```
SELECT Username, Password, Userlevel FROM Usertbl
```

 
Sedan i funktionen, istället för if not rs.EOF then... så skriver du:

```
funnen=false
while not rs.eof or funnen=false
if rs("username")=user and rs("password")=passw then
funnen=true
'sätt sessionerna...
else
rs.MoveNext
end if
wend
```

 Jag tycker det är klumpigt att behöva skicka med sql-strängen i funktionen, du kommer ju knappast att använda den flera gånger på en sida, eller ens i samma projekt...
Eller ska du det?

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

## #12 — LarsG, 2002-04-08T09:00Z

Nej, så gör man inte. Låt alltid databasen göra utsökningen.

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

## #13 — doggelito, 2002-04-08T09:04Z

må vara att man inte använder den mer i samma projekt, men däremot så är det alltid roligt när man hittar lösningar som underlättar nästa projekt, och nästa...
ganska coolt vore det ju om man bara behövde kopiera med 'funktions-sidan' till nästa projekt utan att behöva gå in i den.
men det är ju lite överkurs förstås, jag är helnöjd ändå, tack! 
 :bire

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/41072-hur-hämta-en-funktion
