Avatar billede bobbedude Nybegynder
10. juli 2002 - 09:21 Der er 17 kommentarer og
1 løsning

Global ASA

når en bruger logger ind på min side puttes hans brugernavn i en variabel USERName.

Hvordan kan jeg via Global.asa checke om han er logget ind flere gange -
(underforstået han har givet sit password til flere ikke registrerede bruger).
Avatar billede eagleeye Praktikant
10. juli 2002 - 09:43 #1
er det en lang liste med brugernavne?

Der er Session_Onstart functionen men på det tidspunkt den bliver kaldt er man vel ikke logget ind?
Avatar billede bobbedude Nybegynder
10. juli 2002 - 09:49 #2
når man logger ind ville jeg have en eller anden rutine der lige checker om brugernavnet allerede findes.
men jeg ved ikke rigtigt hvordan det skal gøres, det jeg ved er at det nok skal klares via global.asa.
Avatar billede ras2000 Nybegynder
10. juli 2002 - 10:20 #3
Du kan ikke gøre det alene via global.asa. Når en bruger logger ind, vil jeg tage hans brugernavn og smide ind i en database eller tekstfil, når han logger ud igen skal han så fjernes igen. Når han logger på, kan du så tjekke om hans navn er på listen af folk der er logget ind. Det vil give nogle problemer, hvis han logger af, og så prøver at logge på igen, jeg kan ikke huske hvor hurtigt session onend fungerer.
Avatar billede bobbedude Nybegynder
10. juli 2002 - 10:37 #4
problemet er bare at hvis jeg gør som ras2000 forslår vil jeg ganske sikkert få problemer for de fleste logger ud ved bare at lukke siden eller hoppe et andet sted hen.
Avatar billede ras2000 Nybegynder
10. juli 2002 - 10:43 #5
Jamen det fanger session_onend jo. Det er der du skal fjerne deres navn fra listen.
Avatar billede bobbedude Nybegynder
10. juli 2002 - 11:47 #6
oki det havde jeg glemt, men er der et eksempel jeg kan se??
Avatar billede ras2000 Nybegynder
10. juli 2002 - 12:09 #7
Jeg prøver at ave noget, men det tager nok lidt tid.
Avatar billede bobbedude Nybegynder
10. juli 2002 - 12:35 #8
jeg er klart til at vente :ø)
Avatar billede ras2000 Nybegynder
10. juli 2002 - 14:46 #9
Nå, det gik ikke helt så godt som jeg havde regnet med. Det skulle være muligt at definere en array i sin global.asa, og udvide/fjerne i den, men jeg har ikke kunne få det til at fungere. Jeg kigger lidt mere på det, men jeg er ikke så fortrøstningsfuld længere.
Avatar billede bobbedude Nybegynder
10. juli 2002 - 15:00 #10
håber det bedste
Avatar billede ras2000 Nybegynder
10. juli 2002 - 15:32 #11
Nå, jeg har ramt muren. Her er min global.asa indtil videre:
<SCRIPT LANGUAGE="VBScript" RUNAT="SERVER">
Sub Session_OnStart
    Users = Application("Users")
    ReDim Preserve Users(UBound(Users) + 1)
    Users(2) = UBound(Users) + 1
    Application("Users") = Users
    Session("a") = Users(2)
End Sub

Sub Session_OnEnd
End Sub

sub Application_OnStart
    ReDim Users(1)
    Application("Users") = Users
End Sub

sub Application_OnEnd
End Sub
</script>
Den laver et array, og føjer en post til. Jeg mener det burde være muligt at få en asp-side til at skrive bruger navnet ind i den array, og kontrollere om det var der i forvejen, men jeg kan ikke gennemskue hvordan. Jeg lider selvfølgelig en del af at jeg er vant til at scripte client-side, og det er vi jo langt fra her. Det skulle jo også være muligt at få den til at fjerne posten igen ved session onend, men igen kan jeg ikke se hvordan. En mulighed jeg tænkte på, var at udvide arrayet i det uendlige, og gemme positionen af brugeren i arrayet, og så bare slette navnet. Det ville kunne lade sig gøre, men det dur jo ikke i praksis med et array der bliver uendeligt stort. Der skal vist en dygtigere person ind i billedet end mig. Håber det lykkes dig.
Avatar billede bobbedude Nybegynder
11. juli 2002 - 07:56 #12
tak fordi du forsøgte
Avatar billede bobbedude Nybegynder
11. juli 2002 - 13:34 #13
lukker lige og tænker på om man mon kan gøre noget andet
Avatar billede ras2000 Nybegynder
11. juli 2002 - 15:21 #14
Jeg tror jeg har fundet ud af det. Nu ser min global.asa således ud:
<SCRIPT LANGUAGE="VBScript" RUNAT="SERVER">
Sub Session_OnStart
    Session("lillestreng") = ""
End Sub

Sub Session_OnEnd
    Application("brugerstreng") = replace(Application("brugerstreng"), "&" & Session("lillestreng"), "")
    Session("lillestreng").close
End Sub

sub Application_OnStart
    Application("brugerstreng") = ""
End Sub

sub Application_OnEnd
    Application("brugerstreng") = ""
End Sub
</script>
Det der er tanken er at brugerne bliver føjet til i en lang tekststreng, når de logger på, og så fjernet igen, når de logger ud igen.
Der er lidt knas, Session_OnEnd fyrer ikke når man forlader sitet, som jeg troede, men når serveren har besluttet at du ikke er aktiv mere, dvs typisk tyve minutter efter din sidste forespørgsel. Det er for lang tid, det gider vi ikke vente på, så du kan fyre den af manuel (uha det lød frækt) med en Session.Abandon. Problemet er hvornår det skal gøres.
Mit forslag går på at du laver det hele i frames. Den ene frame er skjult, og dens eneste funktion er, at når den onloader, så åbner den en side der hedder logud.asp, feks, som så indeholder session.abandon, og en self.close., altså:
<html>
<head>
</head>
<body onload="self.close()">
<%
Session.Abandon
%>
</body>
</html>
Din login side skal så tjekke om Instr(application("brugerstreng"), brugernavn) <> 0. Min ser således ud:
<html>
<head>
</head>
<body>
<%
Session("lillestreng") = Request.querystring("bruger")
if instr(Application("brugerstreng"), Session("lillestreng")) = 0 then
    Application("brugerstreng") = Application("brugerstreng") & "&" & Session("lillestreng")
    response.write Replace(Application("brugerstreng"), "&", " ")
else
    response.write "Du må ikke være logget på to gange på samme tid"
end if
%>
</body>

</html>
Er det forståeligt?
Avatar billede bobbedude Nybegynder
11. juli 2002 - 22:47 #15
jeg checker det lige og naturligvis får du dine point for det
Avatar billede ras2000 Nybegynder
16. juli 2002 - 10:58 #16
Jeg har lavet noget her: http://www.mucdesign.dk/logon/index.htm
Prøv dig lidt frem med det. Jeg har ikke lavet en submit knap, bare tryk enter. Så skulle du komme til en side med en tekststreng af alle dem der er logget på. Når du lukker den side igen, så fjerner den brugeren fra tekststrengen igen. Men jeg tror man er nød til at gøre det fra forskellige maskiner, der er vist mange ting jeg ikke ved om global.asa filen.
Avatar billede ras2000 Nybegynder
16. juli 2002 - 11:05 #17
Hvis du skal have slettet hele listen, kan du gå ind på denne side
http://www.mucdesign.dk/logon/ryd.asp
Avatar billede bobbedude Nybegynder
16. juli 2002 - 11:18 #18
jeg checker det lige ud når jeg kommer hjem :ø)
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