---
title: "Funktionen hittar inte userID"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/110884-funktionen-hittar-inte-userid"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "WebbisNet"
published: "2004-09-05T21:55:51.000Z"
updated: "2004-09-06T11:41:54.000Z"
replies: 15
views: 407
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/110884-funktionen-hittar-inte-userid"
---

# Funktionen hittar inte userID

## #1 — WebbisNet, 2004-09-05T21:55Z

Jag har en funktion som kollar om användaren är online eller inte

```
Function isOnline(userID)
Set onlinecheck=objConn.Execute("Select Tstamp From tblUsers WHERE userID=" & request("userID"))
If DateDiff("n", onlinecheck(0), Now) <= 1 Then
    isOnline = True
  Else
    isOnline = False
    response.redirect "/logout.asp"
  End If
End Function%>
```

och jag kallar på den med view.asp?userID=\<%=isOnline(online("userID"))%\>

Detta ger mig följande felmeddelande
Kompileringsfel i Microsoft VBScript (0x800A03EA)
Syntaxfel
/userlist.asp, line 15
Function isOnline(userID)

Nån som kan hitta felet?

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

## #2 — supreme, 2004-09-05T21:57Z

Vad är det för kod på rad 15?

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

## #3 — WebbisNet, 2004-09-05T21:59Z

Det som står i felmeddelandet

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

## #4 — supreme, 2004-09-05T22:14Z

Ja den raden ser ju onekligen korrekt ut, såvida det inte är så att du inte skickar med någon parameter.

Är det endast denna funktionen i filen eller det kan bero på kod som ligger innan funktionen?

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

## #5 — WebbisNet, 2004-09-05T22:23Z

koden funkar perfekt för onlinelistan, när jag lägger in funktionen får jag felet

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

## #6 — Engine^, 2004-09-05T22:31Z

Var lägger du in koden? Vad finns det något ovanför?

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

## #7 — supreme, 2004-09-05T22:33Z

Då är det alltså inte koden det är fel på utan det är något runt koden, svårt att säga något mer specifikt när man inte har alla filer etc... är även över ett år sedan jag jobbade med asp sist, nu är det bara php som gäller.

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

## #8 — solbulle, 2004-09-05T22:40Z

```
Set onlinecheck=objConn.Execute("Select Tstamp From tblUsers WHERE userID=" & userID )
```

Eller?
Är det så du tänkt dig att använda dig av det userid som du stoppar in i funktionen?
Hur kallar du annars på funktionen?

/red. lite många  citationstecken..

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

## #9 — WebbisNet, 2004-09-05T22:48Z

i onlinelistan så får jag ju med id-t för rätt användare, detta id vill jag använda i funktionen för att kolla om tiden är större eller mindre än den inställda och därefter sätta användaren som online eller offline

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

## #10 — solbulle, 2004-09-05T23:24Z

online("userID"), vad ger det dig?

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

## #11 — WebbisNet, 2004-09-05T23:57Z

> **solbulle skrev:**
>
> online("userID"), vad ger det dig?

Det ger mig id för den/de användare som är markerade som online i databasen

Set online=objConn.Execute("Select TOP 7 \* From tblUsers WHERE inloggad=True ORDER BY Tstamp desc")

de som inte är markerade som online har jag en annan sql sats för som ger rs offline("userID")

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

## #12 — solbulle, 2004-09-06T00:36Z

Om du då får fram en kommaseparerad lista, kan du inte skriva din sql så här då:

```
Set onlinecheck=objConn.Execute("Select Tstamp From tblUsers WHERE userID IN =" & userID )
```

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

## #13 — WebbisNet, 2004-09-06T02:00Z

skriver ut hela onlinedelen istället:

```
<%
Set online=objConn.Execute("Select TOP 7 * From tblUsers WHERE inloggad=True ORDER BY Tstamp desc")
do until online.eof OR online.bof

if online("sex")="F" then
gender="Kvinna"
else
gender="Man"
end if

alder=FormatNumber(DateDiff("y",online("persnr") ,date())/365.2375,1)
Function isOnline(userID)
Set onlinecheck=objConn.Execute("Select Tstamp From tblUsers WHERE userID IN =" & userID )

If DateDiff("n", onlinecheck(0), Now) <= 1 Then
    isOnline = True
  Else
    isOnline = False
    response.redirect "/logout.asp"
  End If
End Function
%>
<tr>
<td width="15"  align="left"><%If online("Sex") = "M" Then%><%=maleIcon%></td>
<td width="55"  align="left"><a class="menu" href="/view.asp?userID=<%=isOnline(online("userID"))%>" title="<%=gender%> (<%=alder%>) från <%=online("city")%>" <%=linkmessage%>><%=online("username")%></a></td>
<td width="60"  align="right"><a <%=linkmessage%> href="/mail/writeMail.asp?sender=<%=Session("userID")%>&reciever=<%=online("userID")%>&toUser=<%=online("username")%>">
<img border="0" title="Skicka meddelande till <%=online("username")%>" <%=mail%>></a></td>

<td width="15"  align="left"><%ElseIf online("Sex")  = "F" Then%><%=femaleIcon%></td>
<td width="55"  align="left"><a class="menu" href="/view.asp?userID=<%=online("userID")%>" title="<%=gender%> (<%=alder%>) från <%=mainRS("city")%>" <%=linkmessage%>><%=online("username")%></a></td>
<td width="60"  align="right"><a <%=linkmessage%> href="/mail/writeMail.asp?sender=<%=Session("userID")%>&reciever=<%=online("userID")%>&toUser=<%=online("username")%>">
 <img border="0" title="Skicka meddelande till <%=online("username")%>" <%=mail%>></a></td>
<%End If%>
</tr>
<%online.MoveNext
Loop%>
```

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

## #14 — @nders, 2004-09-06T03:04Z

Du får inte lägga en funktion inne i en loop.

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

## #15 — Engine^, 2004-09-06T09:02Z

Som **@nders** säger får du inte ha en funktion i en loopen, så lägg dessa överst i koden.

Din funktion kommer dock att avbryta loopen om användaren inte är online och skicka besökaren till logout.asp. Det känns inte så genomtänkt även om det fallet inte kommer till att uppstå, eftersom du bara loopar igenom användare som är online. Det betyder i sin tur att du inte behöver göra kollen överhuvudtaget.

Din kod bör kunna skrivas om så här

```
<%
Set online = objConn.Execute("SELECT TOP 7 * FROM tblUsers WHERE inloggad ORDER BY Tstamp DESC")

Do Until online.EOF
  If online("sex")="F" Then
    gender="Kvinna"
  Else
    gender="Man"
  End If

  alder=FormatNumber(DateDiff("y", online("persnr"), Date())/365.2375,1)
%>
<tr>
<td width="15" align="left">
<%
  If online("Sex") = "M" Then
    Response.Write maleIcon
  ElseIf online("Sex") = "F" Then
    Response.Write femaleIcon
  Else
    Response.Write vbNullString
  End If
%>
</td>
<td width="55" align="left"><a class="menu" href="/view.asp?userID=<%=online("userID")%>" title="<%=gender%> (<%=alder%> ) från <%=online("city")%>" <%=linkmessage%>><%=online("username")%></a></td>
<td width="60" align="right"><a <%=linkmessage%> href="/mail/writeMail.asp?sender=<%=Session("userID")%>&reciever=<%=online("userID")%>&toUser=<%=online("username")%>">
<img border="0" title="Skicka meddelande till <%=online("username")%>" <%=mail%>></a></td>
</tr>
<%
  online.MoveNext
Loop
%>
```

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

## #16 — WebbisNet, 2004-09-06T11:41Z

ska bli kul att se hur det funkar :-)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/110884-funktionen-hittar-inte-userid
