Avatar billede vejbump Nybegynder
28. juni 2001 - 17:30 Der er 24 kommentarer og
1 løsning

Slet i tabel når Explorer lukkes

OK here\'s the deal...
Jeg har et bruger site som gør at når en bruger logger sig ind bliver hans brugernavn gemt i en tabel, hvorefter det så bliver vist på siden i en liste over online brugere.

Når brugeren så lukker Explorer skal hans brugernavn slettes fra listen automatisk. Problemet er at jeg ikke vil bruge frames på siden. Jeg har allerede en metode der kan det jeg gerne vil have, men det virker kun hvis jeg bruger frames...

Er der nogen der kan hjælpe mig med det?
<%= Vejbump %>
Avatar billede tofte Juniormester
28. juni 2001 - 17:35 #1
Se på denne side, jeg tror det er det du mener
http://www.activeserverpages.dk/aspdigital/2001060701.asp
Avatar billede tofte Juniormester
28. juni 2001 - 17:37 #2
den bruger godt nok ikke nogen database, men ideen er den sammen. Scriptet kan nemt laves om til en database i stedet.

Hvis du har adgang til filen global.asa, kan man også bruge den, det vil faktisk være den bedste løsning. Men det er ikke alle websteder som har muliggjort at man ændre i denne fil.
Avatar billede vejbump Nybegynder
28. juni 2001 - 18:14 #4
keysersoze >> Ok det script ser godt ud. Men uanset hvor meget jeg prøver, kan jeg ikke få det til at virke OVERHOVEDET...

Jeg kunne vel ikke få dig til at lave Global.asa filen til mig??? Please. Det er første gang jeg arbejder med Global.asa filer.
Avatar billede keysersoze Guru
28. juni 2001 - 18:28 #5
Avatar billede whatever Nybegynder
28. juni 2001 - 18:55 #6
Du må kunne gøre noget lignende:
------------------------
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
End Sub

Sub Application_OnEnd
End Sub

Sub Session_OnStart
End Sub

Sub Session_OnEnd
    Set conn = Server.CreateObject(\"ADODB.Connection\")
    conn.Open \"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"d:\\home\\database\\database.mdb
    Set rs = Server.CreateObject(\"ADODB.Recordset\")
    rs.CursorLocation = adUseServer
    rs.CursorType = adOpenForwardOnly
    rs.LockType = adLockOptimistic
    rs.Open \"SELECT * FROM din_tabel WHERE brugernavn = \"& session(\"brugernavn\") &\" \", conn, , , adCmdText
    rs.delete   
    rs.close
    conn.close   
    Set rs = Nothing
    Set conn = Nothing
End Sub
</SCRIPT>
---------------------

Dette kræver selvfølgelig, at du skriver brugernavnet til en session, når brugeren logger ind.
Avatar billede whatever Nybegynder
28. juni 2001 - 18:56 #7
Ups. Du skal selvfølgelig include adovbs.inc.
Avatar billede vejbump Nybegynder
28. juni 2001 - 19:29 #8
whatever >> Det var lige sådan en kode jeg manglede, men hvad er adovbs.inc og hvor kan jeg finde en sådan fil...
Avatar billede whatever Nybegynder
28. juni 2001 - 19:38 #9
Det er en fil med konstanter til ADO. Ved ikke lige det kan hentes på nettet. Men smid din e-mail adresse, så sende jeg den.
Avatar billede vejbump Nybegynder
28. juni 2001 - 19:40 #10
Tak for det... jsk@vejbump.dk
Avatar billede vejbump Nybegynder
28. juni 2001 - 19:40 #11
Så må jeg bare håbe at Azero.dk har fået ordnet deres mail server :)
Avatar billede vejbump Nybegynder
28. juni 2001 - 19:45 #12
whatever >> Deres mail server er nede :(
Kan du ikke gå ind på www.vejbump.dk/kodedb og skrive den ind i en ny post...
Jeg kan ikke modtage mail i øjeblikket...
Avatar billede whatever Nybegynder
28. juni 2001 - 19:49 #13
Den skulle ligge der nu.....
Avatar billede vejbump Nybegynder
28. juni 2001 - 19:51 #14
Tak
Avatar billede vejbump Nybegynder
28. juni 2001 - 21:19 #15
whatever >> OK nu har jeg sadt det hele op som det skal være, men det virker stadigt ikke. Jeg har lavet en global.asa og lagt koden ind, og jeg har included adovbs.inc. Er der noget andet der skal laves før det virker? Skal Sub Session_OnEnd aktiveres med en kode eller hvad...
Avatar billede vejbump Nybegynder
28. juni 2001 - 21:20 #16
Den nye global.asa:
--------------------------------------------------
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnStart
End Sub

Sub Application_OnEnd
End Sub

Sub Session_OnStart
End Sub

Sub Session_OnEnd
    Set Conn = Server.CreateObject(\"ADODB.Connection\")
    Conn.Open \"PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"C:\\Inetpub\\wwwroot\\config\\db\\config.mdb\") & \";UID=;PWD=;\"
    Set rsLogud = Server.CreateObject(\"ADODB.Recordset\")
    rsLogud.CursorLocation = adUseServer
    rsLogud.CursorType = adOpenForwardOnly
    rsLogud.LockType = adLockOptimistic
    rsLogud.Open \"SELECT * FROM Online WHERE BrugerID = \"& session(\"ID\") &\" \", conn, , , adCmdText
    rsLogud.delete   
    rsLogud.close
    conn.close   
    Set rsLogud = Nothing
    Set conn = Nothing
End Sub
</SCRIPT>
--------------------------------------------------
/Vejbump
Avatar billede whatever Nybegynder
28. juni 2001 - 21:38 #17
Global.asa skal for det første ligge i roden af serveren. For det andet skal du lave et login-system som skriver BrugerId\'et til en session, ellers vil det ikke virke.
Avatar billede vejbump Nybegynder
28. juni 2001 - 22:23 #18
Jeg har alle disse og det virker med login og der kommer ingen fejl beskeder når jeg køre siden og heller ikke når jeg lukker den igen.
Brugeren bliver ført ned i DB\'en når man logger ind men bliver ikke slettet igen når man logger ud.
Avatar billede elisabeth Nybegynder
29. juni 2001 - 09:21 #19
Hvis brugeren skal slettes når vedkommende går af sitet, hvorfor ligger du så brugeren ned i databasen? Det må være nok at have brugeren i en session.
mvh Elisabeth
Avatar billede keysersoze Guru
29. juni 2001 - 10:36 #20
elisabeth - hvis det bliver lavet på den meget er der meget usikkerhed: de flestes session timeout er på 20 minutter, og når mange brugere så bare lukker vinduet i stedet for at logge ud normalt står de altså online 20 minutter mere end de er på siden...
Avatar billede keysersoze Guru
29. juni 2001 - 10:38 #21
hmmm - men det burde man vel næsten kunne gøre noget ved med lidt javascript eller noget(?)... anyway - mener ikke at det kan køre lige så optimalt

men måske - dunno
Avatar billede elisabeth Nybegynder
29. juni 2001 - 11:21 #22
Keysersoze>>Man kan vælge at indsætte en session().abandon
eller sætte en session().timeout=tid
mvh Elisabeth
Avatar billede vejbump Nybegynder
22. juli 2001 - 06:06 #23
Jeg har fundet en løsning.... Tak for hjælpen...
Avatar billede keysersoze Guru
05. august 2001 - 23:03 #24
hvad blev løsningen så???
Avatar billede klyde Nybegynder
05. august 2001 - 23:08 #25
Jeg havde en gammel funktion der virkede men som jeg havde besluttet mig for ikke at bruge, fordi det krævede at man manuelt logger ud når man forlader webstedet.
Den har jeg brugt i stedet.

Man kan vel sige at jeg gik på kompromi med mig selv :)

/Klyde
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