Avatar billede steen_hansen Forsker
20. juli 2002 - 14:57 Der er 76 kommentarer og
1 løsning

Online - Session("bruger") <> ""

Hvordan kan man vise hvem der er on-line i et community - altså hvem, hvis Session("bruger") <> "" (dem er er logget på)?
Avatar billede neteffect Nybegynder
20. juli 2002 - 15:00 #1
Du skal bruge en array i en application variable
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:01 #2
Ja? Sagt med andre ord...? :o)
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:21 #3
Ok, jeg har faktisk to spørgsmål:

1: Status (On-line/Off-line)

2: Sidst logget på (dato og tidspunkt)

Jeg giver 50 point pr. spørgsmål.
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 15:22 #4
Do while Session("bruger") <> ""
  Response.Write Session("bruger")
Loop

Ved ikke om det virker.. det er noget jeg lige fandt på !
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 15:22 #5
Sidst logget på gemmer du vel i en DB ?
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:25 #6
Hm, idéen var god nok, men det stopper fuldstændigt nu :o)

Jeg har rem'et de sætninger ud
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 15:27 #7
Hvad med dit andet spm ? Du gemmer vel hvornår brugeren sidst har logget ind ?
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:29 #8
Nej, det har jeg ikke gjort. Hvordan gør jeg så det?
Avatar billede neteffect Nybegynder
20. juli 2002 - 15:29 #9
Det er jo aldrig helt til at sige, hvor meget spørgeren ved. Men når du selv lægger ud med session("bruger"), så forestillede jeg mig, at du godt kunne fange ideen i min kommentar.
Det er helt med vilje jeg ikke sætter mig ned og laver løsningen for dig, for jeg ser eksperten som et sted, hvor man kan få et skub til selvhjælp, når man har brug for dét.
Vil have nogen til at lave noget for sig - gratis eller betalt - så synes jeg man bør melde rent ud, at det er dét man ønsker.
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 15:31 #10
Hvis du ikke har gemt det i en DB, så kan du ikke gøre så meget !
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:37 #11
Jeg kender noget til ASP, men kan betegnes som alt andet end "en haj" til ASP. Jeg har brug for nogle eksempler på noget kode. Så ja - det er hjælp til selvhjælp.

Jeg har fanget en masse ved at kigge kode igennem og se hvordan andre håndterer visse opgaver. Men det er ikke ensbetydende med, at jeg kan sætte mig ned og lave en løsning på en konkret opgave. Der er lige så mange metoder at håndtere en given opgave på, som der er udviklere, når vi taler ASP. Det er ihvertfald mit indtryk.

Mit spørgsmål drejer sig lige så meget om at lære, for de to funktioner er egentlig ret ligegyldige i et community. De er bare fyld, men kan hjælpe mig til en hel del forståelse.

Men derfor håber jeg stadig på noget hjælp. Hvis ikke I har lyst eller tid, eller synes det er for langt ude, er det selvfølgelig helt i orden. Så må jeg bare finde andre veje. Håber ikke jeg er en pestilens. Det er ikke min mening ar være dét.
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:39 #12
aqq-zeus: Jeg tror godt jeg ved hvordan man håndterer det at lægge dato og tidspunkt for på-logning ned i DB. Leger lidt med det.
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 15:42 #13
Jeg kan godt hjælpe dig med at logge det, hvis det er !? Du logger vel også IP ?
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:44 #14
Nej, jeg logger ikke IP. Men lige nøjagtig DEN funktion kunne være fed senere hen.
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:54 #15
Mht. Off-line/On-line, er det så ikke noget med

If Session("bruger") <> "" then
  Response.Write "On-line"
Else
  Response.Write "On-line"
End if

Men hvordan skal det så forbindes til den enkelte profil?
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:55 #16
Fejl!

If Session("bruger") <> "" then
  Response.Write "On-line"
Else
  Response.Write "Off-line"
End if
Avatar billede steen_hansen Forsker
20. juli 2002 - 15:56 #17
Der skal vel også noget RS("bruger") med ind i det?
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 15:59 #18
Ja, der skal noget RS("bruger") med i det! Kan jeg kigge en gang på scriptet så kan jeg se om jeg kan løse det ?
Avatar billede steen_hansen Forsker
20. juli 2002 - 16:08 #19
Ok, allerførst vil jeg kort lige skitsere opbygningen:

Over <html>:

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("/fpdb/database.mdb")

mode = Request.QueryString("mode")

Herefter arbejder jeg i "modes" i det samme dokument:

<%
If mode = "DetEne" then
%>
<!--#include virtual="/includes/DetEne.asp
<%
End if
%>
<%
If mode = "DetAndet" then
%>
<!--#include virtual="/includes/DetAndet.asp
<%
End if
%>

Jeg arbejder altså i det samme dokument, men inkluderer det ene eller det andet, afhængigt af hvilken mode.

Hvilken mode afhænger af brugerens valg:

<a href="/default.asp?mode=bruger_list" onFocus="this.blur()"><b>Brugerliste</b>

Til sidst i dokumentet lukker jeg forbindelsen:

<%
Conn.Close
Set Conn = Nothing
%>

Koden til det konkrete spørgsmål kommer her:
Avatar billede steen_hansen Forsker
20. juli 2002 - 16:14 #20
<%
                        'Hiver alle brugere ud:
                        Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger")
                        %>
                        <span class="o17">Liste over samtlige medlemmer af Community:</span><br><br>
                        <table border="0" width="100%" cellpadding="0" cellspacing="0">
                            <tr>
                                <td width="110"><span class="tekst11"><b>Brugernavn</b></span></td>
                                <td width="130"><span class="tekst11"><b>E-mail</b></span></td>
                                <td width="110"><span class="tekst11"><b>Status</b></span></td>
                                <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000">
                                    <tr>
                                        <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td>
                                    </tr>
                                </table>
                                </td>
                            </tr>
                            <%
                            Do Until RS.EOF
                            %>
                            <tr>
                                <td height="6" colspan="4"></td>
                            </tr>
                            <tr>
                                <td width="<% Response.Write(TDWidthCell)%>"><a href="/default.asp?mode=profil&ID=<%=RS("brugerID")%>"><%=RS("bruger")%></a></td>
                                <td><a href="mailto:<%=RS("brugerEmail")%>"><%=RS("brugerEmail")%></td>
                                <td></td>
                                <td></td>
                            </tr>
                            <%
                            RS.MoveNext
                            Loop
                            RS.Close
                            Set RS = Nothing
                            %>
                            <tr>
                                <td height="6" colspan="4"></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000">
                                    <tr>
                                        <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td>
                                    </tr>
                                </table>
                                </td>
                            </tr>
                        </table>
                        <!--#include virtual="/includes/bund.asp"-->
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 16:22 #21
jeg har ikke så meget tid lige nu.. men jeg kigger på det senere !
Avatar billede steen_hansen Forsker
20. juli 2002 - 16:23 #22
Det er 10-4 :o)
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 16:25 #23
koden er så uoverskuelig her ! kan du ikke sende det dokument som det skal laves i ?!
Avatar billede steen_hansen Forsker
20. juli 2002 - 16:30 #24
Det ER dokumentet, som det skal laves i. Kan du ikke kopiere det over i f.eks. FP?

Jeg har jo RS("bruger"):

Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger")

- og det skal sættes ind mellem

                                <td width="110"><span class="tekst11"><b>Status</b></span></td>
                                <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td>

                                <td>STATUS HER</td>
                                <td>DATO OG TIDSPUNKT HER</td>

Kan det ikke lade sig gøre?
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 16:38 #25
hmm... prøv følgende! Jeg har sat lidt ind, men jeg ved ikke om det virker!

<%
                        'Hiver alle brugere ud:
                        Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger")
                        %>
                        <span class="o17">Liste over samtlige medlemmer af Community:</span><br><br>
                        <table border="0" width="100%" cellpadding="0" cellspacing="0">
                            <tr>
                                <td width="110"><span class="tekst11"><b>Brugernavn</b></span></td>
                                <td width="130"><span class="tekst11"><b>E-mail</b></span></td>
                                <td width="110"><span class="tekst11"><b>Status</b></span></td>
                                <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000">
                                    <tr>
                                        <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td>
                                    </tr>
                                </table>
                                </td>
                            </tr>
                            <%
                            Do Until RS.EOF
                            %>
                           
                            <% Dim status
                           
                            If Session("bruger") <> "" Then
                           
                                If RS("bruger") = Session("bruger") Then
                                    status = "Online"
                                Else
                                    status = "Offline"
                                End If
                           
                            Else
                                status = "Offline"
                            End If
                            %>
                            <tr>
                                <td height="6" colspan="4"></td>
                            </tr>
                            <tr>
                                <td width="<% Response.Write(TDWidthCell)%>"><a href="/default.asp?mode=profil&ID=<%=RS("brugerID")%>"><%=RS("bruger")%></a></td>
                                <td><a href="mailto:<%=RS("brugerEmail")%>"><%=RS("brugerEmail")%></td>
                                <td><%=status%></td>
                                <td></td>
                            </tr>
                            <%
                            RS.MoveNext
                            Loop
                            RS.Close
                            Set RS = Nothing
                            %>
                            <tr>
                                <td height="6" colspan="4"></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000">
                                    <tr>
                                        <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td>
                                    </tr>
                                </table>
                                </td>
                            </tr>
                        </table>
                        <!--#include virtual="/includes/bund.asp"-->
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 16:39 #26
en løsning kunne også være at når brugeren loggede ind, så blev der i DB'en i et felt (status) skrevet Online! og når brugeren loggede ud eller lukkede vinduet, så blev der skrevet Offline i DB'en !
Avatar billede steen_hansen Forsker
20. juli 2002 - 16:44 #27
Det virker perfekt! :o)

Så er der det her med tidpunkt. Så skal du vel have login.asp?
Avatar billede steen_hansen Forsker
20. juli 2002 - 16:47 #28
Det kunne også være en løsning, men jeg synes det ville være fint, hvis vi holdt de to ting adskilt. Eller er der fordele ved at bruge din sidstnævnte metode? Vil det ikke være at komplicere tingene?
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 17:16 #29
Virker det første ?!
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 17:17 #30
For at få tidspunktet så er du nødt til at indsætte tiden og dato når brugeren logger ind i DB'en !
Avatar billede steen_hansen Forsker
20. juli 2002 - 17:25 #31
Ja, det første virker, de første 50 point er dine :o)

Du skal vel se login.asp?
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 17:28 #32
ja, så vi kan lave så den indsætter dato og tid i DB'en ...
Avatar billede steen_hansen Forsker
20. juli 2002 - 17:39 #33
<%
                            'Hvis brugeren har submittet login formen
                            If Request.ServerVariables("REQUEST_METHOD") = "POST" then

                                'Kontrollerer om felterner er udfydlt
                                If Request.Form("bruger") <> "" AND Request.Form("adgangskode") <> "" then

                                        SQL = "SELECT * FROM profiler WHERE bruger = '" & Request.Form("bruger") & "'"
                                        Set RS = Conn.Execute(SQL)

                                            'Kontrollerer om brugeren eksisterer
                                            If RS.EOF or RS.BOF then
                                                Response.Write("<span class='tekst11r'><b>PROFILEN EKSISTERER IKKE!</b></span><br>")
                                            Else

                                                    'Kontrollerer om passwords matcher
                                                    If RS("brugerkode") = Request.Form("adgangskode") then

                                                            Session("bruger") = RS("bruger")
                                                            Response.Redirect("/default.asp")                                                       

                                                    Else
                                                        Response.Write("<span class='tekst11r'><b>ADGANGSKODEN ER FORKERT!</b></span><br>")
                                                    End if
                                            End if

                                        RS.Close
                                        set RS = nothing

                                Else   
                                    Response.Write("<span class='tekst11r'><b>DU HAR IKKE UDFYLDT ALLE FELTERNE!</b></span><br>")
                                End if

                            End if
                        %>
        <table border="0" cellpadding="0" cellspacing="0" width="100%" span class="tekst11">
            <tr>
                <td>
                    <form method="post" action="/default.asp?mode=login">
                        <table cellspacing="0" cellpadding="0" class="tekst11">
                            <tr>
                                <td colspan="3"><span class="o17">Log ind i Community:</span><br>
                                    <br>
                                </td>
                            </tr>
                            <tr>
                                <td width="100">Brugernavn:</td>
                                <td width="6"></td>
                                <td><input type="text" name="bruger" size="25" class="input" autocomplete="off"></td>
                            </tr>
                            <tr>
                                <td colspan="3" height="6"></td>
                            </tr>
                            <tr>
                                <td width="100">Adgangskode:</td>
                                <td width="6"></td>
                                <td><input type="password" onPaste="keyHandler();" name="adgangskode" size="25" class="input"></td>
                            </tr>
                            <tr>
                                <td colspan="3" height="6"></td>
                            </tr>
                            <tr>
                                <td></td>
                                <td width="6"></td>
                                <td><input type="submit" value="Log ind" class="input"></td>
                            </tr>
                        </table>
                    </form>
                </td>
            </tr>
        </table>
        <table border="0" cellpadding="0" cellspacing="0" width="100%">
            <tr>
                <td width="100%">
                    <!--#include virtual="/includes/bund.asp"-->
                </td>
            </tr>
        </table>
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 18:27 #34
jeg bruger selv følgende:


Dim username, password, tid, dato
username = Session("brugernavn")
password = Session("password")
tid = formatdatetime(time,3)
dato = formatdatetime(date,2)
    sql = "insert into log (brugernavn, adgangskode, dato, tid) values('" & username & "','" & password & "','" & dato & "','" & tid & "')"
    cn.execute sql
        cn.close
        set cn = nothing
       
Session("password") = ""

Response.Redirect("../default.asp?mode=admin")


Der sætter den brugernavn, adgangskode, tid og dato ind... Håber det kan bruges...
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 18:29 #35
og s¨træk det ud således :


Dim tid
                           
                            If Session("bruger") <> "" Then
                           
                                If RS("bruger") = Session("bruger") Then
                                    tid = "Online"
                                Else
                                    tid = RS("dato")&RS("tid")
                                End If
                           
                            Else
                                tid = RS("dato")&RS("tid")
                            End If

så det ser sådan ud:


<%
                        'Hiver alle brugere ud:
                        Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger")
                        %>
                        <span class="o17">Liste over samtlige medlemmer af Community:</span><br><br>
                        <table border="0" width="100%" cellpadding="0" cellspacing="0">
                            <tr>
                                <td width="110"><span class="tekst11"><b>Brugernavn</b></span></td>
                                <td width="130"><span class="tekst11"><b>E-mail</b></span></td>
                                <td width="110"><span class="tekst11"><b>Status</b></span></td>
                                <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000">
                                    <tr>
                                        <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td>
                                    </tr>
                                </table>
                                </td>
                            </tr>
                            <%
                            Do Until RS.EOF
                            %>
                           
                            <% Dim status
                           
                            If Session("bruger") <> "" Then
                           
                                If RS("bruger") = Session("bruger") Then
                                    status = "Online"
                                Else
                                    status = "Offline"
                                End If
                           
                            Else
                                status = "Offline"
                            End If
                           
                            Dim tid
                           
                            If Session("bruger") <> "" Then
                           
                                If RS("bruger") = Session("bruger") Then
                                    tid = "Online"
                                Else
                                    tid = RS("dato")&RS("tid")
                                End If
                           
                            Else
                                tid = RS("dato")&RS("tid")
                            End If
                           
                            %>
                            <tr>
                                <td height="6" colspan="4"></td>
                            </tr>
                            <tr>
                                <td width="<% Response.Write(TDWidthCell)%>"><a href="/default.asp?mode=profil&ID=<%=RS("brugerID")%>"><%=RS("bruger")%></a></td>
                                <td><a href="mailto:<%=RS("brugerEmail")%>"><%=RS("brugerEmail")%></td>
                                <td><%=status%></td>
                                <td></td>
                            </tr>
                            <%
                            RS.MoveNext
                            Loop
                            RS.Close
                            Set RS = Nothing
                            %>
                            <tr>
                                <td height="6" colspan="4"></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000">
                                    <tr>
                                        <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td>
                                    </tr>
                                </table>
                                </td>
                            </tr>
                        </table>
                        <!--#include virtual="/includes/bund.asp"-->
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 18:29 #36
ups... sådan:


<%
                        'Hiver alle brugere ud:
                        Set RS = Conn.Execute("SELECT * FROM profiler ORDER BY bruger")
                        %>
                        <span class="o17">Liste over samtlige medlemmer af Community:</span><br><br>
                        <table border="0" width="100%" cellpadding="0" cellspacing="0">
                            <tr>
                                <td width="110"><span class="tekst11"><b>Brugernavn</b></span></td>
                                <td width="130"><span class="tekst11"><b>E-mail</b></span></td>
                                <td width="110"><span class="tekst11"><b>Status</b></span></td>
                                <td width="110"><span class="tekst11"><b>Sidst logget ind</b></span></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000">
                                    <tr>
                                        <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td>
                                    </tr>
                                </table>
                                </td>
                            </tr>
                            <%
                            Do Until RS.EOF
                            %>
                           
                            <% Dim status
                           
                            If Session("bruger") <> "" Then
                           
                                If RS("bruger") = Session("bruger") Then
                                    status = "Online"
                                Else
                                    status = "Offline"
                                End If
                           
                            Else
                                status = "Offline"
                            End If
                           
                            Dim tid
                           
                            If Session("bruger") <> "" Then
                           
                                If RS("bruger") = Session("bruger") Then
                                    tid = "Online"
                                Else
                                    tid = RS("dato")&RS("tid")
                                End If
                           
                            Else
                                tid = RS("dato")&RS("tid")
                            End If
                           
                            %>
                            <tr>
                                <td height="6" colspan="4"></td>
                            </tr>
                            <tr>
                                <td width="<% Response.Write(TDWidthCell)%>"><a href="/default.asp?mode=profil&ID=<%=RS("brugerID")%>"><%=RS("bruger")%></a></td>
                                <td><a href="mailto:<%=RS("brugerEmail")%>"><%=RS("brugerEmail")%></td>
                                <td><%=status%></td>
                                <td><%=tid%></td>
                            </tr>
                            <%
                            RS.MoveNext
                            Loop
                            RS.Close
                            Set RS = Nothing
                            %>
                            <tr>
                                <td height="6" colspan="4"></td>
                            </tr>
                            <tr>
                                <td colspan="4">
                                <table border="0" cellpadding="0" cellspacing="0" width="100%" height="1" bgcolor="#000000">
                                    <tr>
                                        <td width="100%" height="1"><img border="0" src="/images/1x1.gif" width="1" height="1"></td>
                                    </tr>
                                </table>
                                </td>
                            </tr>
                        </table>
                        <!--#include virtual="/includes/bund.asp"-->
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 18:30 #37
og så lige et svar, hvis det skulle virke :)

Jeg lukker ned nu og kommer først online i morgen... Så fortvivl ikke....
Avatar billede steen_hansen Forsker
20. juli 2002 - 20:49 #38
agg-zeus, on-line scriptet viser, at den enkelte bruger (som har logget ind) er on-line, men ikke hvem der ellers er. Alle andre står til at være off-line? Vi snakkes ved i morgen :o)
Avatar billede agg-zeus Nybegynder
20. juli 2002 - 21:30 #39
Jeg har kigget lidt rundt og fandt det her : http://activedeveloper.dk/julekalender/julegaver/whoson.asp

Ved ikke om du kan bruge det !? Jeg er på igen en gang i morgen ! Du kan finde mig på Messenger med smartdog@tiscali.dk eller på ICQ # 61009106
Avatar billede agg-zeus Nybegynder
21. juli 2002 - 11:34 #40
Jeg har leget lidt med det og har fået det til at virke! Du skal have en global.asa som skal se således ud:

<Script Language=VBScript Runat=Server>


Sub Session_OnStart

End Sub


Sub Session_OnEnd

If Len(Session("bruger")) > 0 Then
    Application.Lock
    Application("OnlineUsers") = Replace(Application("OnlineUsers"), Session("brugernavn") & ",", "")
    Application.UnLock
End If

End Sub


Sub Application_OnStart

    Application.Lock
    Application("OnlineUsers") = ","
    Application.UnLock
   
End Sub


Sub Application_OnEnd

End Sub


</SCRIPT>


Og følgende skal du bare gemme i en fil som bliver included på de sider hvor brugerene skal vises OG på login-siden


' --- procedure til at tilføje en online bruger ---
Sub AddOnlineUser()
    Application.Lock
    Application("OnlineUsers") = Application("Onlineusers") & Session("brugernavn") & ","
    Application.UnLock
End Sub
' --- funktion som retunerer antallet af online brugere ---
Function CountOnLineUsers()
    Dim arrUsers
    ' --- lav et array med online brugere ---
    arrUsers = Split(Application("Onlineusers"), ",")
    ' --- antallet af online brugere er altid størrelsen på arrayet -1 ---
    CountOnLineUsers = UBound(arrUsers) - 1
End Function

' --- procedure til at udskrive online brugere ---
Sub WriteOnLineUsers()
    Dim arrUsers
    Dim n
    ' --- lav et array med online brugere ---
    arrUsers = Split(Application("Onlineusers"), ",")
    ' --- udskriv liste ---
    For n = 1 To UBound(arrUsers) -1
        Response.Write(arrUsers(n) & "<br>")
    Next
End Sub


På login siden SKAL du sætte AddOnlineUser ind !
Og hvor onlinebrugere skal stå skal du sætte WriteOnLineUsers ind !

På din logout side skal du huske at skrive Session.Abandon ! Det skulle virke! hvis ikke du kan få det til at funke så skriv...
Avatar billede agg-zeus Nybegynder
21. juli 2002 - 11:53 #41
Jeg har prøvet at fixe login_form.asp og din status.asp . Du kan hente filerne her: www.jakkerstone.dk/eksperten/steen.zip
Avatar billede steen_hansen Forsker
21. juli 2002 - 17:55 #42
Det er MEGET fornemt, men jeg har lige et spørgsmål: Hvordan skal det her rettes til? Jeg

Dim username, password, tid, dato
username = user ' Brugernavn bliver logget!
password = pass ' Adgangskode bliver logget!
tid = formatdatetime(time,3) ' Klokken
dato = formatdatetime(date,2) ' Datoen
SQL = "INSERT INTO profiler (brugernavn, adgangskode, dato, tid) values('" & username & "','" & password & "','" & dato & "','" & tid & "')"
Conn.Execute SQL

AddOnlineUser


Jeg får denne fejl:

Microsoft VBScript compilation error '800a0411'

Name redefined

/dcu/includes/brugerprofil.asp, line 37

Dim tid
----^
Avatar billede steen_hansen Forsker
21. juli 2002 - 17:57 #43
Jeg har oprettet to felter ekstra i profiler, som hedder "tid" og "dato". Begge er af datatypen "Dato og klokkeslet".
Avatar billede agg-zeus Nybegynder
21. juli 2002 - 18:02 #44
Så prøv at fjerne tid fra Dim...

Og hvis den brokker sig over datatyperne i felterne, så ændr dato og tid til tekst! Det kører jeg med, for jeg kan aldrig få det andet til at funke :o)

Og ved nærmere eftertanke skal SQL-sætningen nok hedde:

SQL = "UPDATE profiler set brugernavn = '"& username &"', adgangskode = '"& password &"', dato = '"& dato &"', tid = '"& tid &"' WHERE brugernavn = '"& username &"' "

så den opdaterer feltet hver gang der logges ind ! Hvis den skal virke skal du ændre dato/tid felterne til tekst...
Avatar billede steen_hansen Forsker
21. juli 2002 - 20:10 #45
Hm, det giver denne fejl:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/includes/login.asp, line 28

SQL = "UPDATE profiler Set brugernavn = '"& username &"', adgangskode = '"& password &"', dato = '"& dato &"', tid = '"& tid &"' WHERE brugernavn = '"& username &"' "                        Conn.Execute SQL
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------^
Avatar billede steen_hansen Forsker
21. juli 2002 - 20:15 #46
Ups, jeg glemte at fjerne tid fra Dim, ser ud til at virke...
Avatar billede steen_hansen Forsker
21. juli 2002 - 20:20 #47
Når jeg prøver at logge ind, får jeg denne fejl:

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

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

/includes/login.asp, line 29

line 29: Conn.Execute SQL
Avatar billede steen_hansen Forsker
21. juli 2002 - 21:12 #48
Mangler der ikke noget mellem

profiler Set

?
Avatar billede steen_hansen Forsker
21. juli 2002 - 22:52 #49
Det er mystisk! Jeg prøvede at rem'e denne:

'Conn.Execute SQL

og prøvede at udskrive SQL'en:

Response.Write(SQL)

Jeg får ikke udskrevet SQL'en, men logger direkte ind uden problemer....?
Avatar billede steen_hansen Forsker
21. juli 2002 - 23:10 #50
FEDEST! Det virker .... NÆSTEN :o)

Under kolonnen "Sidst logget ind" har du sat "Online nu!" istedet for det sidste tidspunkt, brugeren er logget ind. Kan det fixes?
Avatar billede steen_hansen Forsker
21. juli 2002 - 23:12 #51
Men problemet med, at man kun kan se at man selv er online, er der stadig :o(
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 09:11 #52
Jeg har sat den til "Online nu" hvis brugeren er logget ind !


Hmm... Ja, du har ret ! Den viser kun at man selv er online !
Avatar billede steen_hansen Forsker
22. juli 2002 - 12:21 #53
Ja, man har næsten selv en idé om, hvornår man selv er online eller ej, så det er omsonst :o)

Jeg så scriptet (elller næsten et identisk) hos Active Developer, men jeg kan ikke se hvad der skulle være galt?
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 12:23 #54
Det er hentet fra ActiveDeveloper... :o) jeg ved ikke helt hvad der er galt ! Jeg har en spm her på Eksperten og på Netcoders om det... Så nu er det bare at vente på at nogen svarer !
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 12:24 #55
men virker det andet ?
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 12:31 #56
Den tæller fint antal brugere og kan også sagtens udskrive hvem der er online... Men det skal vi jo ikke bruge! Det er her det glipper:

    If Session("brugernavn") = rs.fields("brugernavn") Then
        Status = "Online"
    Else
        Status = "Offline"
    End If

men hvad der skal stå i stedet for Session("brugernavn") aner jeg ikke ! Jeg har prøvet nogle ting, men uden held !
Avatar billede steen_hansen Forsker
22. juli 2002 - 14:39 #57
Ja, så vidt jeg kan forstå, er Session("brugernavn") kun oprettet på egen maskine. Hm? Det er pænt af dig ligefrem at oprette spørgsmål :o)
Avatar billede steen_hansen Forsker
22. juli 2002 - 14:50 #58
Når du logger ind, bliver din Session("brugernavn") aktiv på din egen maskine, men der står vel ingen steder på siden, at du ER logget ind?

If Len(Session("brugernavn")) > 0 Then

Frit oversat: Hvis ens egen Session("brugernavn") <> "" så ....

Det er den jo, når man logger på. Men det er jo kun lokalt på ens egen maskine, at sessionen er aktiv?
Avatar billede steen_hansen Forsker
22. juli 2002 - 14:51 #59
Glem det sidste, det er noget vrøvl :o)

Håber du kan finde ud af noget, jeg leder også.
Avatar billede steen_hansen Forsker
22. juli 2002 - 21:20 #60
Mht. logning af brugerens IP-adresse, så har jeg fundet frem til flg.:

brugerIP =  Request.ServerVariables("REMOTE_ADDR")
Response.Write brugerIP

For at logge den, har jeg prøvet flg.:

brugerIP = Request.ServerVariables("REMOTE_ADDR")

RS.AddNew
RS("brugernavn") = Server.HTMLEncode(Request("brugernavn"))
RS("brugerkode") = Server.HTMLEncode(Request("adgangskode"))
RS("brugernavnEmail") = Server.HTMLEncode(Request("email"))
RS("brugernavnHjemmeside") = Server.HTMLEncode(Request("hjemmeside"))
RS("brugernavnTekst") = Server.HTMLEncode(Request("fri_tekst"))
RS("brugerIP") = Server.HTMLEncode(Request("brugerIP"))
RS.Update

Men det giver en fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver]Error in row

/dcu/includes/opret.asp, line 41
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 21:31 #61
I stedet for RS("brugerIP") = Server.HTMLEncode(Request("brugerIP"))
prøv RS("brugerIP") = Request("brugerIP")

Og har du tjekket at feltet i DB'en er tekst ?
Avatar billede steen_hansen Forsker
22. juli 2002 - 21:50 #62
Ok, men det loggede ikke noget som helst.

On-line/Off-line: http://www.eksperten.dk/spm/207895 - prøv at se den.
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 21:53 #63
prøv RS("brugerIP") = brugerIP


Det synes jeg ikke giver så meget mening (spm'et!) ...
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 21:54 #64
Her kan du se mit spm om det: http://www.eksperten.dk/spm/238104
Avatar billede steen_hansen Forsker
22. juli 2002 - 22:01 #65
Hm, der er vist lange udsigter :o(

Det her med IP-logging virker ikke. Nogen forslag?

Jeg afsætter 20 point til det spørgsmål.

Jeg har dårlige erfaringer med at oprette andre spørgsmål, som er en fortsættelse af andre. Så vi venter lige lidt med at afvikle det. Er det ok? Du HAR rigeligt fortjent pointene allerede nu :o)
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 22:23 #66
JEg bruger følgende til at logge IP:

sql = "Select * from users Where brugernavn='"& user & "' And pw='" & pass & "';"
rs.open sql, cn

If Not rs.eof Then
    Session.contents("crew") = True
    Session("brugernavn") = rs.fields("brugernavn")
    Session("password") = rs.fields("pw")
    Session("crewID") = rs.fields("crewID")
    Session("userID") = rs.fields("userID")
    Session("adminlevel") = rs.fields("adminlevel")
    Session("IP") = Request.ServerVariables("REMOTE_ADDR")
    Session("dato") = formatdatetime(date,1)
End If   

ovenstående bliver sat hvis brugeren er godkendt!

Nedenstående skulle så sætte IP'en ind i databasen.. Det virker hos mig!

Sql = "Insert Into logon (Bruger, Dato, Ip) Values('" & Replace(Session("brugernavn"),"'","''") & "', '" & Session("dato") & "', '" & Replace(Session("IP"),"'","''") & "')"


Hvad er det for et site du et ved at lave community til ?
Avatar billede steen_hansen Forsker
22. juli 2002 - 22:39 #67
Hvad er din e-mail adr?
Avatar billede steen_hansen Forsker
22. juli 2002 - 22:54 #68
Det er meget nemmere at gøre sådan her:

RS.AddNew
RS("strIP") = Request.ServerVariables("REMOTE_ADDR")
RS.Update


... og ikke andet. Så logger den IP-adressen :o)
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 23:41 #69
min email er smartdog@tiscali.dk
Avatar billede agg-zeus Nybegynder
22. juli 2002 - 23:42 #70
Jeg ved godt at det jeg skrev er indviklet, men det er heller ikke skrevet fornylig... Det er gammel kode :o)
Avatar billede steen_hansen Forsker
23. juli 2002 - 00:24 #71
Skidt med koden, den er pingeling nu :o)

Jeg har noget objRegExp, som formatterer tekst. Alt hvad der er www i, bliver lavet om til et aktivt link, som åbner i et nyt vindue, alt hvad der er et "@" bliver lavet om til an aktiv e-mail adresse, der er e-mailvalidering, linieskift (str = Replace(str, vbcrlf, "<br>")) etc.

Men det fungerer ikke med Server.HTMLEncode. Hvad gør Server.HTMLEncode helt nøjagtigt?

Hvis jeg fjerner Server.HTMLEncode fra koden:

RS.AddNew
'RS("brugernavn") = Server.HTMLEncode(Request("brugernavn"))
RS("brugernavn") = Request("brugernavn")

- så virker det perfekt. Men der er jo ingen idé i at fjerne det, hvis det på et senere tidspunkt giver mig problemer. Hvad gør det helt nøjagtigt?
Avatar billede agg-zeus Nybegynder
23. juli 2002 - 00:32 #72
hmm... det kan jeg ikke helt svare dig på nu... Jeg er ikke helt klar over om du har brug for den... Men hvis det virker uden Server.HTMLEncode, så drop det ;o)
Avatar billede steen_hansen Forsker
23. juli 2002 - 00:38 #73
Det er planen :o)

Du har ikke fundet ud af noget om On-line/Off-line?
Avatar billede agg-zeus Nybegynder
23. juli 2002 - 00:48 #74
Okay.. :)

Nej, jeg har ikke fået noget svar... Jeg har et indlæg her på Eksperten, på NetCoders og på ActiveDeveloper! :o)

Hvad skulle du forresten med min mail ?

Og til hvilket site er det community til ?
Avatar billede steen_hansen Forsker
23. juli 2002 - 00:57 #75
Jeg sender dig en mail nu.
Avatar billede steen_hansen Forsker
23. juli 2002 - 18:22 #76
Tak for hjælpen, agg-zeus :o) Lægger koden ud til andre senere
Avatar billede agg-zeus Nybegynder
23. juli 2002 - 18:48 #77
Vi er ikke færdige ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester