Hej! Jag hittade ett skript på nätet som gör att man kan se hur många som är inne på en sida vid ett visst tillfälle. Nu vill jag modifiera det lite så att den bara visar hur många det är som faktiskt är inloggad på min sida.
Jag har en variabel som heter strLoggedOn = "yes". När en användare loggar in sätts den sessionsvariabeln till "yes" och det är bara dessa jag vill ska synas i räknaren. Koden för Global.asa ser ut på följande sätt och det är kodad i Java, rätt eller fel? Det jag vill göra är att lägga till en IF-sats som kontrollerar min variabel. Hur gör jag? :)
<script language="vbscript" runat = "server">
Sub Application_OnStart
'initialize variable
Application("visitors_online") = 0
End Sub
Sub Application_OnEnd
End Sub
Sub Session_OnStart
Session.Timeout = 20 '20 minute timeout
Application.Lock
[B]'IF-satsen borde stå här. Vet dock inte hur syntaxen skalla vara för att det ska bli rätt [/b]
Application("visitors_online") = Application("visitors_online") + 1
Application.Unlock
End Sub
Sub Session_OnEnd
Application.Lock
Application("visitors_online") = Application("visitors_online") - 1
Application.Unlock
End Sub
</script>
Det är inte Java utan VBScript. Du kan inte använda dig av en sådan sessionsvariabel, eftersom Session_OnStart exekveras innan användaren kan logga in.
Nog för att du kan använda variabeln, men inte i just den subben. Du kan räkna ut det genom att loopa igenom alla Sessioner och räkna hur många som har Session("strLoggedOn") = "yes". Jag vet inte om det sättet är att rekommendera.
Jag skulle lösa det genom att skapa ett fält i tabellen över användare med namnet IsLoggedOn (True/False) och sedan med en enkel SQL-sats kontrollera hur många inloggade det är.
Problemet med båda dessa tillvägagångssätt är att Session_OnEnd är lite opålitligt om jag inte missminner mig.