18. juli 2003 - 16:31Der er
12 kommentarer og 1 løsning
Password System - Multiple Users - Helst ikke DB
Hej, Jeg leder efter kode til et password-system, der skal kunne anvendes af flere brugere. Umiddelbart burde det være let at finde, men jeg har brugt flere timer på at lede efter det rette system, men uden held.
Jeg har ikke adgang til Access, så hvis der skal bruges database skal det være MySQL.
Det optimale ville være at brugeren selv kan ændre password, men det er ikke noget must.
Der skal naturligvis også være en stump kode, der gør, at de beskyttede sider ikke kan ses hvis man ikke er logget ind i systemet.
Henvisning til et færdiglavet script jeg kan bruge, giver også udbetaling af point.
Jeg vil anbefale dig at skimme noget om sessions, det er lækkert til dit formål! Du kan godt benytte en flad txt fil! Jeg har desværre ikke noget liggende i ASP!
Til noden: Det er hermed taget til efterretning. Hvis der ikke dukker det helt rigtige svar op, kan det være jeg sætter mig ind i sessions.
Til firehat: Til det formål jeg har i tankerne nu, er det ikke nødvendigt at man skal kunne oprette brugere på siden. Det er nok hvis jeg som webmaster kan oprette og ændre ID og password i en fil.
Det ligner grangiveligt det jeg har brug for... :-)
Men jeg mangler vel lige at få den oprindelige ASP-kilde til login-siden; dvs. den kildekode, der henviser til den fil hvor de forskellige brugere og passwords ligger gemt?
Hvis du fremskaffer det, giver jeg dig fluks 100 af de grove... :-)
login.asp : ------------------------------------------------- <% User = Request.Querystring("user") ' Sætter User til det man indtastede i formen Pass = Request.Querystring("pass") ' ..og Pass !
If LCase(User) = "bruger1" AND LCase(Pass) = "pass1" Then Session("login") = User Elseif LCase(User) = "bruger2" AND LCase(Pass) = "pass2" Then Session("login") = User Elseif LCase(User) = "bruger3" AND LCase(Pass) = "pass3" Then Session("login") = User End if
' Og man kan blive ved mere at lave flere og flere elseif, tror du forstår systemet..!
If Session("login") <> "" Then ' Hvis man er logget ind, så Response.Redirect "beskyttede_side.asp" End if %> <html> <head> <title>Login</title> </head> <body> <form> Brugernavn: <input name="user"><br> Password: <input name="pass" type="password"><br> <input type="submit" value="Login >"> </form> </body> </html>
------------------------------------------------- beskyttede_side.asp : ------------------------------------------------- <% If Session("login") = "" Then Response.Redirect "login.asp" End if %> <html> <head> <title>Logget ind :)</title> </head> <body> Denne side kan kun brugere som er logget ind se ..<br><br> På de se hvor man skal være logget ind skal følgende kode være øverst på siden (over <html>) <br> <font size="2"><i><%<br> If Session("login") = "" Then<br> Response.Redirect "login.asp"<br> End if<br> %></i></font> <br><br> På siden hvor man skal logge ud, skal denne kode være:<br> <font size="2"><i><%<br> Session("login") = ""<br> %></i></font> <br> BEMÆRK! Der må koden for at tjekke om man er logget ind, <i>ikke</i> være! <br><br> <a href="logud.asp"><b>Logud</b></a> </body> </html>
------------------------------------------------- logud.asp : ------------------------------------------------- <% Session("login") = "" %> <html> <head> <title>Logget ud!</title> </head> <body> Du er nu logget ud .. <br><br> <a href="login.asp"><b>Login</b></a> </body> </html>
Jeg takker mange gange firehat - det er vist lige efter bogen! ;-)
Et lille ekstrsspørgsmål: kan det lade sig gøre at lave en fejlmeddelelse til brugere, hvis de indtaster forkert ID og/eller password? Enten i form at blot en fejlmeddelelse eller redirect til en ny side?
Og endnu et kort spørgsmål, som jeg kunne forestille mig var let at svare på hvis man har lidt forstand på der her skidt. Hvordan tildeler man hver enkelt bruger et "navn", som er anderledes end deres brugernavn. Det jeg gerne vil er, at en bruger der logger ind med fx "hansen" kan gives et andet navn på siden. Jeg tror koden skal være noget lig med: <%= Session("username") %> men jeg ved det naturligvis ikke - og jeg kan heller ikke få det til at fungere på den måde.
Svar vil være meget velkomment - hvis der skal flere point på bordet, så sig endelig til.
En kort sidekommentar. Hvis jeg sætter ovenstående til <%= Session("login") %> kan jeg "kalde" den pågældende brugers brugernavn. Det jeg forestiller mig jeg skal, er at oprette endnu en session. Kan det lade sig gøre?
Det ser rigtig godt ud. Jeg har dog fundet 2 mindre problemer.
Hvis jeg logger med bruger1 først, kommer det rigtige navn til at stå der. Problemet opstår når jeg logger ud med bruger1 og logger ind med bruger2, så står der stadig bruger1's navn. Kan det laves om?
Mit andet problem består i, at fejlmeddelelsen der kommer, hvis man indtaster forkert ID/password, ikke kommer frem under min login-boks, men derimod helt i toppen af siden. Jeg ved ikke om det skyldes at min side er opbygget vha. tabeller? Men kan det ikke lade sig gøre at "kalde" fejlmeddelelsen på et specifikt sted på siden?
På forhånd mange tak. Endnu engang må du sige til, hvis der skal flere point på bordet - i så fald er jeg den glade giver.. :-)
Problemet med at navnene ikke følger med, er nu blevet rettet så det behøves du ikke spekulere på.. :-)
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.