---
title: "hur gör jag för att anropa funktionen?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11003-hur-gör-jag-för-att-anropa-funktionen"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Percy"
published: "2001-08-08T20:04:00.000Z"
updated: "2001-08-08T21:32:00.000Z"
replies: 9
views: 206
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/11003-hur-gör-jag-för-att-anropa-funktionen"
---

# hur gör jag för att anropa funktionen?

## #1 — Percy, 2001-08-08T20:04Z

Hej!

Novis inom detta som jag är undrar jag hur man gör för att få variabeln pass att anta lösenordfunktionens värde då man valt att inte fylla i något från formulärrutan user? problemet är vad som ska stå i den första If-statsen efter ElseIf Len("pass") \< 1 Then.

```
<%
Function getRandomPassword(ByVal iNoChars)

Dim sChars, sPassword
Dim i

Randomize(Timer())
sChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

For i = 1 to iNoChars
sPassword = sPassword & Mid(sChars, Rnd * Len(sChars) + 1, 1)
Next

getRandomPassword = sPassword

End Function

Dim surname, lastname, email, pass, user, desc

surname = Request.Form("surname")
lastname = Request.Form("lastname")
email = Request.Form("email")
user = Request.Form("user")
pass = Request.Form("pass")
desc = Request.Form("desc")

If Len("user") < 1 Then
session("no") = "Du måste ange ett användarnamn"
Response.Redirect("account.asp")

ElseIf Len("pass") < 1 Then
pass = getRandomPassword(8)
End If

Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\databas.mdb"
sqlstmt = "SELECT * FROM account WHERE username = '" & user & "'"
set rs = Connection.Execute(sqlstmt)

IF rs.EOF Then

sqlstmt = "INSERT INTO account ([username], [password], [surname], [lastname], [email], [description]) VALUES ('" & user & "', '" & pass & "', '" & surname & "', '" & lastname & "', '" & email & "', '" & desc & "')"
Connection.Execute(sqlstmt)

Else
Session("no") = "Användarnamnet är upptaget, var god välj ett annat."
Response.Redirect("account.asp")
End If

rs.close
Connection.Close
%>
```

tack på förhand

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

## #2 — LarsG, 2001-08-08T20:15Z

Det bör se ut som du har skrivit. Får du något fel?

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

## #3 — Percy, 2001-08-08T20:21Z

ja, följande:

```
Microsoft JET Database Engine error '80004005' 

Field 'account.password' cannot be a zero-length string. 

/members/account1.asp, line 43
```

rad 43 är f.ö. 

```
Connection.Execute(sqlstmt)
```

 dvs raden efter 

```
sqlstmt = "INSERT INTO account ([username], [password], [surname], [lastname], [email], [description]) VALUES ('" & user & "', '" & pass & "', '" & surname & "', '" & lastname & "', '" & email & "', '" & desc & "')"
```

detta borde väl rimligen innebära att den inte hämtar värdet från funktionen?
Har du någon briljant lösning kanske? :-)

\[Redigerat av Percy den 08 aug 2001\]

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

## #4 — jorgen, 2001-08-08T20:37Z

Prova skriva ut variabeln Pass innan du försöker sätt in den i SQL frågan så ser du fall den är tom eller ej, vilket jag tror den är.

mvh Jörgen

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

## #5 — LarsG, 2001-08-08T20:39Z

Hmm, nej jag ser inget direkt. Kan du lägga in lite trace-utskrifter så man ser vad som händer?

Tex

```
<%
Function getRandomPassword(ByVal iNoChars)
Dim sChars, sPassword
Dim i

Randomize(Timer())
sChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

For i = 1 to iNoChars
sPassword = sPassword & Mid(sChars, Rnd * Len(sChars) + 1, 1)
Next

getRandomPassword = sPassword

End Function

Dim surname, lastname, email, pass, user, desc

surname = Request.Form("surname")
lastname = Request.Form("lastname")
email = Request.Form("email")
user = Request.Form("user")
pass = Request.Form("pass")
desc = Request.Form("desc")
[b]
Response.write "Len(pass):" & len(pass) & "<br>"
[/b]

If Len("user") < 1 Then
session("no") = "Du måste ange ett användarnamn"
Response.Redirect("account.asp")

ElseIf Len("pass") < 1 Then
pass = getRandomPassword(8)
End If

[b]
response.write "pass: " & pass & "<br>"
[/b]
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\databas.mdb"
sqlstmt = "SELECT * FROM account WHERE username = '" & user & "'"
set rs = Connection.Execute(sqlstmt)

IF rs.EOF Then

sqlstmt = "INSERT INTO account ([username], [password], [surname], [lastname], [email], [description]) VALUES ('" & user & "', '" & pass & "', '" & surname & "', '" & lastname & "', '" & email & "', '" & desc & "')"
[b]
response.write "Sql: " & sqlstmt & "<br>"
'[/b]Connection.Execute(sqlstmt)

Else
Session("no") = "Användarnamnet är upptaget, var god välj ett annat."
Response.Redirect("account.asp")
End If

rs.close
Connection.Close
%>
```

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

## #6 — Percy, 2001-08-08T20:49Z

När jag provar att fylla i ett eget lösen fungerar allt som det ska men då jag utelämnar lösenordet så får jag upp följande kod:

```
Len(pass):0
pass: 
sql: INSERT INTO account ([username], [password], [surname], [lastname], [email], [description]) VALUES ('Adam', '', 'jan', 'banan', 'jan@banan.com', 'ordinary user')
```

Nu vet vi med all säkerhet att variabeln pass är tom, men jag är inte klokare av att jag vet det....
Har ni någon aning? provade att köra funktionen i en separat fil och med följande kod:

```
<%
Function getRandomPassword(ByVal iNoChars)

Dim sChars, sPassword
Dim i

Randomize(Timer())
sChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"

For i = 1 to iNoChars
sPassword = sPassword & Mid(sChars, Rnd * Len(sChars) + 1, 1)
Next

getRandomPassword = sPassword

End Function

Response.Write getRandomPassword(8)

%>
```

det fungerar dock utmärkt...

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

## #7 — LarsG, 2001-08-08T20:57Z

Jag ser felet nu. Du skriver

```

if len("pass") < 1 then
```

i stället för

```

if len(pass) < 1 then
```

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

## #8 — Percy, 2001-08-08T21:04Z

Ja, det fungerar!
Tack LarsG, du är ängel :D

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

## #9 — LarsG, 2001-08-08T21:29Z

Du har samma fel med 

```
if len("user") < 1 then
```

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

## #10 — Percy, 2001-08-08T21:32Z

japp, såg det!

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/11003-hur-gör-jag-för-att-anropa-funktionen
