26. marts 2007 - 15:06Der er
7 kommentarer og 2 løsninger
Sidst logget ind.
Jeg har nogle brugere på min hjemmeside som logger ind via et brugernavn og adgangskode som er gemt i en database. Hvordan kan jeg gøre sådan at jeg kan se hvornår en bruger sidst har været logget ind??
lav en kolonne i brugertabellen som kan gemme på dato.. og når du på din login side tjekker på om en bruger eksistere så kan du efterfølgende lave en update i tabellen på denne kolonne med dags dato
Alternativt kan du lave en helt ny tabel som indeholder brugerid (fremmednøgle til brugertabellen) og en dato (som evt. sættes default til now (eller getdate() hvis det er SQL Server). Så opretter du blot en ny række i denne tabel hver gang en bruger logger på.
På denne måde kan du følge med i alle de gange den enkelte bruger har været logget på og hvornår. I fremtiden kan du så også lægge oplysning om IP, og hvad der ellers har relevans for den enkelte loginsession ned i denne tabel, uden at det forstyrrer tabellen med brugerens stamoplysninger.
Jeg har oprettet en kolonne der hedder "Sidst_Online" i min eksisterende database. Når en bruger logger på kommer han til følgende side : ------------------------------------------------ <% Set objConn = SErver.CreateObject("ADODB.Connection") objConn.Open "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../DATABASER/login.mdb")
strSQL = "SELECT * FROM Users WHERE UserID = " & Session("UserID") Set objRs = objConn.Execute(strSQL)
Vær i øvrigt lige opmærksom på at dit dokument risikerer at blive ugyldig HTML, når du sætter <html>, <head> osv. inde i løkken. Du bør rykke det op over den første <%. Jeg har retttet din kode til herunder:
Jeg er klar over du nok bliver reddet af, at der kun er en bruger, men hvis der nu ikke er en bruger, så vil der slet ikke komme header-information (og starttag til body), så det er under alle omstændigheder en dårlig struktur. Gør i stedet som ovenfor, jeg har benyttet en if-then-else-end if i stedet for en while-løkken til et resultat som givetvis kun returerer max en række...
En sidste ting er, at du altid bør lukke dine recordset og databaseforbindelser efter du har lavet opslag i din database (og helst så tidligt som muligt). Så risikerer du ikke at servere spilde resurser eller i værste fald oplever memoryleaks (specielt i forbindelse med Access).
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.