Avatar billede _k Nybegynder
11. november 2003 - 09:42 Der er 7 kommentarer og
1 løsning

login og sessions

Har lavet et login med php/MySQL og sessions som virker tilfredsstillende. Nu har jeg imidlertid nogle flere krav til loginen, som jeg håber nogle herinde kan hjælpe med.

Vil gerne have at en og kun en person logger ind med samme brugernavn/password af gangen. Understøtter sessions på nogle måder denne funktionalitet? Eller skal jeg selv lave en løsning, hvor jeg f.eks. skriver logintidspunktet eller ip/portnummer på den maskine der logger på.

Det er underordnet om den sidste der logger på slet ikke kan komme ind, eller om han smider den første der er logget ind af....
Avatar billede avminarm Juniormester
11. november 2003 - 09:53 #1
Du kan tjekke op mod databasen om det indtastede brugernavn go/eller password findes i forvejen.

De nemmeste vil nok være at have unikke brugernavne
Avatar billede _k Nybegynder
11. november 2003 - 10:01 #2
Du misforstår mig. Kombinationen brugernavn/password er unik. Det jeg vil undgå er, at 2 personer kan være logget på samtidig med samme brugernavn/password. (det kan de nemlig godt i standard sessions)
Avatar billede sukos Juniormester
11. november 2003 - 10:04 #3
Tror jeg ville lave en "loginsdb", smide session_id(), brugernavn og et unix timestamp ind
timestamp'et skulle opdatere ved hver aktivitet på siden.
Når der logges ind, tjekkes så også op med loginsdb, og er timestamp så ældre end f.eks 10 min, så er det ok, og et evt. row med brugernavnet kan slettes.

Er du med? :O)
Avatar billede _k Nybegynder
11. november 2003 - 10:31 #4
...altså lave en tabel, hvor jeg skriver alle logins? (skal lave en alligevel, så ikke nogen dårlig ide). Men bliver den ikke tung at løbe igennem, hvis der er mange logins? Vil du slette alle ældre end 10 min?
Er ikke helt med på hvad du mener med "Unix Timestamp"? Er det ikke blot serverens tid som skrives i databasen?
Avatar billede sukos Juniormester
11. november 2003 - 10:44 #5
Er faktisk ved at prøve at lave det! :O)
Altså, ved login, tjekker man først "normal" db med bruger og pass.
Er det ok, så tjekkes om navnet ligger i loginsdb, og gør det ikke det, så gemmes brugernavn, session_id og timestamp,(sek. siden 1-1-1970), i loginsdb.

Men findes brugernavnet i loginsdb, tjekkes timestamp, og er det ældre end f.eks. 10 min., ja, så slettes rowet, og et nyt laves.
Men er det IKKE ældre, så kan man ikke logge ind.
D.v.s. så også sige at hvis man ikke bruger et logud link, men blot lukker browservinduet, ja så vil man ikke kunne logge ind igen førend de 10 min.

Om det skal være 10. min afhænger vel af indhold på sitet.
(billeder af qui.... kan man jo godt dvæle ved et stykke tid! :O])

Ved hver request, når man er logget ind, skal timestamp så opdateres til aktuel tid, i det row som svarer til session_id og brugernavn.
Avatar billede avminarm Juniormester
11. november 2003 - 10:49 #6
sukos>> billeder af en quiZ ;o)
Avatar billede _k Nybegynder
13. november 2003 - 20:08 #7
Har leget lidt med det, og ideen er god. Mange tak for hjælpen :o) - og læg lige et svar sukos....
Avatar billede sukos Juniormester
14. november 2003 - 00:05 #8
Ok
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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