Hej. Jeg står og skal bruge et mindre login system til en hjemmeside. Det skal være sådan at når folk logger ind skal de komme på et område/link afhængig af brugernavn. (Så f.eks. for i bogholderi skal komme til et område på hjemmeside og folk fra salgsafdelingen skal komme til et andet område). Nogle der har nogle ideer til hvad jeg skal bruge eller har et script eller kender et osv. ??
Dohhh... så laver jeg den igen. Når jeg trykker ude i venstre over nye spørgsmål, glemmer jeg altid at kigge efter inden jeg spørger hvilket scriptsprog :$
Kender den godt, men det er bare lidt nemmere hvis der er nogen der har erfaring med noget login script så jeg ikke skal bruge flere timer på at kigge dem igennem og igen et par timer fordi det er noget lort etc.. ;-) Min hjemmeside har lige været hacket så jeg har rigeligt andet at bruge min tid på, så hvor jeg kan spare tid gør jeg det helst lige for tiden.. :-)
her er er meget simpelt eksempel .. Den kører efter tid (session) på 30 min .. : <html> <title>Login</title> <head> </head> <body>
<%
If Request.Form("name") = "res" AND Request.Form("pass") = "res" Then Session("login") = "JA" Session.Timeout = 30 Response.Write "<h3>Du er nu logget ind. Vent...</h3>" Response.Redirect("restricted.asp")
Else If Request.Form("name") = "admin" AND Request.Form("pass") = "admin" Then Session("login") = "JA" Session.Timeout = 30 Response.Write "<h3>Du er nu logget ind. Vent...</h3>" Response.Redirect("admin.asp")
Else
Session("login") = "NEJ" Session.Timeout = 30 Response.Write "<h3>Du er IKKE logget korrekt ind.</h3>" Response.Write "<h3><a href='index.htm'>Tilbage</a></h3>"
men det bevirker at du skal have denne lille kode med i hver side
<% ' Hvis brugeren ikke er logget rigtigt på ' sendes han/hun direkte til formularen If Session("login") <> "JA" Then Response.Redirect "login.asp" End If %>
-og hvis du vil have forskellige logins og steder de ikke kan komme kan du bare ændre Session("login") = "JA" til noget andet...
Med løsningen foreslået af spindoktoren, vil du med fordel kunne lægge dine brugernavne, passwords og links til videresendelse ind i en database. Det gør det nemmere at administrere og gør koden endnu mere simpel.
Hvis de forskellige brugere skal have adgang til forskellige sider, kan du give Session("login") den værdi den pågældende bruger har i databasen. På den måde vil du via databasen kunne definere, hvilke "hemmelige sider" hver enkelt bruger skal have adgang til.
Synes godt om
Slettet bruger
09. december 2004 - 15:41#16
Tak for det! Er gået i gang med at teste det, så i hører lige tilbage... God ide med databasen med brugernavne osv.. Dog håber jeg på lidt hjælp med at hente og checke brugernavne i databasen da jeg nok er lidt lost der..
Ja genial god ide Laksen .. tror faktisk jeg vil indføre. Ang. din "losthed" flx666 skal du bare spørge :) glad for at kunne hjælpe
Synes godt om
Slettet bruger
09. december 2004 - 15:45#18
Hey Spindoctor, kan du ikke lige smide en form ind der spørger efter brugernavn og pwd, så er du flink? Har ikke mine bøger og arbejder ikke så tit så jeg kan ikke det hele i hovedet..
Synes godt om
Slettet bruger
09. december 2004 - 15:46#19
Tak for det Spindoktor.. :-) Dejligt at kunne få hjælp... Har lige købt en stor ASP bog som jeg vil æde mig igennem her i julen... Nu skal der seriøst læres ASP!!! :-) Har fået lidt blod på tanden nu...
Synes godt om
Slettet bruger
09. december 2004 - 15:47#20
Hey Laksen - du skal da også lige have lidt credits fra mig... Lyder også som en rigtig god ide.. Lige hvad jeg skal bruge.. :-)
Har selv fået utrolig meget hjælp herinde gennem tiderne, så forsøger såmænd blot at "give lidt igen".... skriv hvis du skal have hjælp med database-delen, så kan jeg hurtigt flette noget sammen. I første omgang overlader jeg roret til spindoktoren :D
Jeg skal jo bruge en form hvor man udfylder navn og kode før jeg kan udnytte den kode du gav mig til at checke for brugernavn og password og derefter sender det videre til den rigtige side...
Jeg smutter nu. Glad for at jeg kunne hjælpe .. held og lykke med hjemmesiden!
Synes godt om
Slettet bruger
09. december 2004 - 16:19#31
Så virker det jo bare.. Fedt!
Sååååå kom vi lige til det der database sjov hvis i har tid til det? :-) Det er jo lidt sjovt nu hvor det virker..
Synes godt om
Slettet bruger
09. december 2004 - 16:28#32
Så har jeg også fået lavet de forskellige afdelinger, det virker fint.. Nu er det bare om at få det i en database... Opretter en database med følgende: Navn, Password, Område
Opret en access-database med følgende kolonner: id (AutoNumber) -- brugernavn (Text(255)) -- adgangskode (Text(255)) -- link (Text(255)) -- sider (Text(255))
Indtast så brugernavn, adgangskode og link på et par forskellige personer i databasen.
Så ikke lige din besked kl. 16:28 inden jeg sendte min kommentar. Du kan ændre "sider" til "omraade" i mit eksempel. Brug ikke "å".
Synes godt om
Slettet bruger
09. december 2004 - 16:36#35
Jeg har lavet en database nu og brugt de data du har skrevet... :-)
Synes godt om
Slettet bruger
09. december 2004 - 16:37#36
hvad er forskellige mellem link og sider?
Synes godt om
Slettet bruger
09. december 2004 - 16:38#37
Altså hvad du har tænkt dig de skal gøre... Der skal selvfølgelig være en til "sider" hvor de skal linkes hent.. er det ikke det samme link skal gøre eller hvad?
Databasen vil f.eks. fungere med følgende side, der skal kaldes "log_ind.asp": <% ' ADODB connection objektet Set db = Server.CreateObject("ADODB.Connection") DNS = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("log_ind_system.mdb") ' Åben db db.Open DNS
Jeg kan se, at der har indsneget sig 2 fejl i min kode ovenfor.
Følgende linie: strSQL = "SELECT id, link, omraade FROM brugere WHERE brugernavn = " & brugernavn & " AND adgangskode = " & adgangskode Skal ændres til: strSQL = "SELECT id, link, omraade FROM brugere WHERE brugernavn = '" & brugernavn & "' AND adgangskode = '" & adgangskode & "'"
Følgende linie: Seesion.Timeout = 30 Skal ændres til: Session.Timeout = 30
Håber du kan få det til at virke. Husk at oprette de sider, du har skrevet i kolonnen "link".
Synes godt om
Slettet bruger
09. december 2004 - 17:05#42
Fandt en af fejlene du havde skrevet... har nu rettet begge to, men den går i fejl når jeg indtaster brugernavn og pwd og trykker på Login.. Kæmper lige... :-)
Synes godt om
Slettet bruger
09. december 2004 - 17:10#43
Jeg har følgende kode: Siden hedder password.asp i stedet for login.asp som du skrev, det har jeg ændret. og "omraade" er også lavet om til "side", samt databasen hedder paperesbjerg.asp og ligger i /upload/ ... Når jeg har indtastet brugernavn og kode så giver den bare en hvid side med intern http500 serverfejl..
<html> <title>Login</title> <head> </head> <body>
<% ' ADODB connection objektet Set db = Server.CreateObject("ADODB.Connection") DNS = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("/upload/paperesbjerg.mdb") ' Åben db db.Open DNS
Har du oprettet de sider, du henviser til i kolonnen "link"? Hvis de ikke eksisterer, vil siden jo melde fejl.
Når du får det til at virke, kan du indtaste, hvilke områder den enkelte bruger skal have adgang til i kolonnen "omraade". Derefter kan du indsætte følgende kode i toppen på de sider, man skal kunne se: <% omraade = "1" ' kan ændres afhængig af område If Session("omraade") <> omraade Then Response.Redirect("log_ind.asp") End If %>
Synes godt om
Slettet bruger
09. december 2004 - 17:14#45
yes, de er oprettet. Den går i fejl ligemeget om jeg indtaster rigtig eller forkert pwd, så det må være inden den checker bruger registrering det går i ged..
I toppen af side 1 indsættes: <% sider = "1" If Session("sider") <> sider Then Response.Redirect("log_ind.asp") End If %>
I toppen af side 2 og 3 indsættes det sammen, men med ny variabel.
Synes godt om
Slettet bruger
09. december 2004 - 17:32#53
DET VIRKER!! :-) Det var min fejl.. ups... havde ændret tabellens navn til personer.. hehe.. sorry! Kanon fedt... Mange tak for hjælpen.. Så må mit næsten projekt være at få lavet en admin del hvor man kan oprette navne osv... Meeen den skal du nok slippe for, bare rolig.. ;-)
Synes godt om
Slettet bruger
09. december 2004 - 17:34#54
Har helt lyst til at kæmpe videre nu når det virker.. fed fornemmelsen.. hehe.. derfor vil jeg også meget gerne i gang med at lære noget mere asp...
Du kan lave et hav af lækre ændringer, når først grunddelen virker.
Du kan også godt lave det sådan, at du kan skrive flere sider i databasen (1,2,3 etc.), men så skal du have gang i nogle arrays i den standard-kode, der står i toppen af hver enkelt side.
Eks.: <% sider = "1" sider_array = Split(Session("sider"),",") login = "" For i = 0 To Ubound(sider_array) Step 1 If sider_array(i) = sider Then login = "ok" End If Next If login <> "ok" Then Response.Redirect("log_ind.asp") End If %>
Synes godt om
Slettet bruger
09. december 2004 - 17:44#56
Det forstod jeg ikke helt... Flere sider? Altså så den ene bruger har adgange til flere eller hvad tænker du på?
Hvis du f.eks. laver 3 hemmelige sider og 3 brugere: Side 1 skal bruger bruger 1 og 2 have adgang til, side 2 skal bruger 2 have adgang til og side 3 skal bruger 3 have adgang til.
Så skrives i kolonnen "sider" i databasen ud for bruger 1 "1", ud for bruger 2 "1,2" og ud for bruger 3 "3". Samtidig indsættes koden skrevet ovenfor i toppen af de hemmelige sider.
Synes godt om
Slettet bruger
09. december 2004 - 17:55#58
Aha... Okay, ja det var jo super smart må man sige.. :-) Men hvordan vælger den bruger som har adgang til både side 1 og 2 så hvilken en han vil ind på hvis han har flere valgmuligheder?
Du vælger en startside i "link", som brugeren bliver sendt hen til først.
Derefter kan du lave links til øvrige sider brugeren har adgang til på de enkelte sider. Det skal ligeledes laves med et array, så brugeren ikke får skrevet links, han ikke har adgang til (for så vil han jo blive sendt tilbage til password.asp).
Eks: <% sider = "1" sider_array = Split(Session("sider"),",") login = "" For i = 0 To Ubound(sider_array) Step 1 If sider_array(i) = sider Then login = "ok" End If Next If login <> "ok" Then Response.Redirect("log_ind.asp") End If %> Links: <% For i = 0 To Ubound(sider_array) Step 1 If sider_array(i) <> sider Then Response.Write "<a href='side" & i & ".asp'>Side " & i & "</a>" End If Next %> Indhold
Du kan jo så lave en ny tabel med navnen på siderne. Så kan du erstatte "1", "2" osv. med nogle mere spændende navne.
Synes godt om
Slettet bruger
09. december 2004 - 18:21#61
Ahhhhh.. genialt... Så laver man bare en side som viser de sider brugeren har adgang til og ikke andre.. smart smart.. :-) Mange tak for det... Jeg bliver jo klogere og klogere.. ;-) Nå, jeg vil lukke ned for i dag.... Mange tak indtil videre... Dejligt at folk kan være så hjælpsomme...
Synes godt om
Slettet bruger
10. december 2004 - 11:00#62
Hey Laksen. Så har jeg fået systemte i drift og det kører bare.. :-) Jeg er lige gået i gang med en admin del. Er det nemmeste ikke at lave en "tilføj bruger" og "fjern bruger" eller er der en smartere måde?
Hey igen .. Hmm min metode ville nok være en simpel kode med tilføj og slet bruger.. Det kan gøres meget hurtigt og smertefrit .. :)
Synes godt om
Ny brugerNybegynder
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.