Avatar billede Slettet bruger
09. december 2004 - 13:27 Der er 63 kommentarer

login system til hjemmeside

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. ??
Avatar billede advancedweb Nybegynder
09. december 2004 - 13:31 #1
Hvilket Scriptsprog?

PHP/ASP
Avatar billede advancedweb Nybegynder
09. december 2004 - 13:32 #2
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 :$

Sorry :p
Avatar billede Slettet bruger
09. december 2004 - 14:10 #3
Haha... ASP Tak.. :-)
Avatar billede advancedweb Nybegynder
09. december 2004 - 14:15 #4
Det glemte jeg så også at skrive.... jeg bruger PHP... ellers ville jeg også have skrevet noget "relevant" :p
Avatar billede Slettet bruger
09. december 2004 - 14:15 #5
Damn... Ellers tak.. :-)
Avatar billede advancedweb Nybegynder
09. december 2004 - 14:16 #6
så lidt.. :P.... :D
Avatar billede advancedweb Nybegynder
09. december 2004 - 14:17 #7
Men ellers kan du nok godt finde noget på http://www.hotscripts.com/

Så var der da lidt jeg kunne hjælpe med :D
Avatar billede Slettet bruger
09. december 2004 - 14:18 #8
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.. :-)
Avatar billede spindoktoren Nybegynder
09. december 2004 - 14:28 #9
Skal der være brugernavn (altså to felter) eller kan det bare være et felt med et password man skal opgive?
Avatar billede Slettet bruger
09. december 2004 - 14:41 #10
Både brugernavn og password... (Ser smartest ud, selvom password kunne gøre det) :-)
Avatar billede laksen Nybegynder
09. december 2004 - 15:14 #11
Hvor meget kender du til ASP? Kan du finde ud af at bruge databaser (Access), Sessions osv.?
Avatar billede Slettet bruger
09. december 2004 - 15:23 #12
Yes, det kan jeg godt... Er ikke begynder, men heller ikke en erfaren ræv..
Avatar billede spindoktoren Nybegynder
09. december 2004 - 15:26 #13
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>"

End If
End If

%>


</body>
</html>
Avatar billede spindoktoren Nybegynder
09. december 2004 - 15:29 #14
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...
Avatar billede laksen Nybegynder
09. december 2004 - 15:40 #15
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.
Avatar billede 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..
Avatar billede spindoktoren Nybegynder
09. december 2004 - 15:45 #17
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
Avatar billede 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..
Avatar billede 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...
Avatar billede 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.. :-)
Avatar billede laksen Nybegynder
09. december 2004 - 15:53 #21
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
Avatar billede spindoktoren Nybegynder
09. december 2004 - 16:00 #22
Tak :) .. Nu håber jeg ikke i forventer for meget men jeg skal gøre mit yderste .. Fedt og høre du har fået blod på tanden, lækkert og hør :)
Avatar billede spindoktoren Nybegynder
09. december 2004 - 16:01 #23
.. Sagde han og gentog sig selv..
Avatar billede Slettet bruger
09. december 2004 - 16:04 #24
hehe.. :-)
Kan i hjælpe med formen samtidig?
Avatar billede spindoktoren Nybegynder
09. december 2004 - 16:05 #25
Sure?! .. hvad med formen?
Avatar billede Slettet bruger
09. december 2004 - 16:06 #26
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...
Avatar billede laksen Nybegynder
09. december 2004 - 16:11 #27
Meget simpelt:

<form name="log_ind" action="log_ind.asp" method="post">
Brugernavn <input type="text" name="name" /><br />
Adgangskode <input type="password" name="pass" /><br />
<input type="submit" value="Log ind" />
</form>

Så vil de indtastede variabler blive sendt til siden "log_ind.asp". Det skal være den side, spindoktoren lavede ovenfor.
Avatar billede spindoktoren Nybegynder
09. december 2004 - 16:12 #28
Lige mine ord .. ;)
Avatar billede Slettet bruger
09. december 2004 - 16:13 #29
Nemli' ja.. :-)
Tak...
Avatar billede spindoktoren Nybegynder
09. december 2004 - 16:16 #30
Jeg smutter nu. Glad for at jeg kunne hjælpe .. held og lykke med hjemmesiden!
Avatar billede 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..
Avatar billede 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
Avatar billede laksen Nybegynder
09. december 2004 - 16:30 #33
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.
Avatar billede laksen Nybegynder
09. december 2004 - 16:31 #34
Så ikke lige din besked kl. 16:28 inden jeg sendte min kommentar. Du kan ændre "sider" til "omraade" i mit eksempel. Brug ikke "å".
Avatar billede Slettet bruger
09. december 2004 - 16:36 #35
Jeg har lavet en database nu og brugt de data du har skrevet... :-)
Avatar billede Slettet bruger
09. december 2004 - 16:37 #36
hvad er forskellige mellem link og sider?
Avatar billede 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?
Avatar billede laksen Nybegynder
09. december 2004 - 16:39 #38
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
 
brugernavn = Request.Form("brugernavn")
adgangskode = Request.Form("adgangskode")

If brugernavn <> "" Then
  ' SQL forespørgsel
  strSQL = "SELECT id, link, omraade FROM brugere WHERE brugernavn = " & brugernavn & " AND adgangskode = " & adgangskode
  ' Udfør forespørgsel
  Set rs = db.Execute(strSQL)
  Do While Not rs.EOF
    Session("id") = rs("id")
    Session("omraade") = rs("omraade")
    Seesion.Timeout = 30
    Response.Redirect(rs("link"))
  Loop
  Response.Redirect("log_ind.asp?fejl=1")
Else
  fejl = Request.QueryString("fejl")
  If fejl = "1" Then
    Response.Write "Det indtastede brugernavn og den indtastede adgangskode matchede ikke. Prøv igen.<br /><br />"
  End If
  %>
  <form name="log_ind" action="log_ind.asp" method="post">
  Brugernavn <input type="text" name="brugernavn" /><br />
  Adgangskode <input type="password" name="adgangskode" /><br />
  <input type="submit" value="Log ind" />
  </form>
  <%
End If

' Luk db
db.Close
Set db = Nothing
%>

I eksemplet oven for hedder databasen "log_ind_system.mdb" og ligger i sammen mappe som filen "log_ind.asp". Tabellen i databasen hedder "brugere".

Nu skulle systemet gerne virke fuldstændig som det, du fik til at fungere tidligere - eneste forskel skulle være, at det nu er baseret på en database.
Avatar billede laksen Nybegynder
09. december 2004 - 16:40 #39
Jeg har ikke testet det, så det kan godt kræve en lille smule tilpasning....
Avatar billede Slettet bruger
09. december 2004 - 16:45 #40
Super!
Jeg prøver lige at teste det...
(Og har også fattet det med link/områder).... :-)
Avatar billede laksen Nybegynder
09. december 2004 - 17:02 #41
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".
Avatar billede 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... :-)
Avatar billede 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
 
brugernavn = Request.Form("brugernavn")
adgangskode = Request.Form("adgangskode")

If brugernavn <> "" Then
  ' SQL forespørgsel
  strSQL = "SELECT id, link, sider FROM brugere WHERE brugernavn = '" & brugernavn & "' AND adgangskode = '" & adgangskode & "'"
  ' Udfør forespørgsel
  Set rs = db.Execute(strSQL)
  Do While Not rs.EOF
    Session("id") = rs("id")
    Session("sider") = rs("sider")
    Session.Timeout = 30
    Response.Redirect(rs("link"))
  Loop
  Response.Redirect("password.asp?fejl=1")
Else
  fejl = Request.QueryString("fejl")
  If fejl = "1" Then
    Response.Write "Det indtastede brugernavn og den indtastede adgangskode matchede ikke. Prøv igen.<br /><br />"
  End If
  %>
  <form name="password" action="password.asp" method="post">
  Brugernavn <input type="text" name="brugernavn" /><br />
  Adgangskode <input type="password" name="adgangskode" /><br />
  <input type="submit" value="Login" />
  </form>
  <%
End If

' Luk db
db.Close
Set db = Nothing
%>

</body>
</html>
Avatar billede laksen Nybegynder
09. december 2004 - 17:13 #44
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
%>
Avatar billede 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..
Avatar billede laksen Nybegynder
09. december 2004 - 17:15 #46
havde igen ikke set din kommentar (17:10) inden jeg sendte min egen. Læser den lige og vender tilbage om lidt....
Avatar billede Slettet bruger
09. december 2004 - 17:15 #47
:0)
Avatar billede laksen Nybegynder
09. december 2004 - 17:19 #48
Du skriver, at du har omdøbt "omraade" til "side". Du kalder den dog "sider" i koden. Er fejlen så simpel??
Avatar billede Slettet bruger
09. december 2004 - 17:22 #49
Sorry... Jeg mente sider.. :-)
Hvad skal værdien i sider være.. bare et navn eller skal det være 1,2,3 osv..
Avatar billede laksen Nybegynder
09. december 2004 - 17:26 #50
Foreløbig skal det bare være et tal. Opret eks. 3 brugere, hvor bruger 1 har adgang til side 1, bruger 2 til side 2 osv.
Avatar billede Slettet bruger
09. december 2004 - 17:27 #51
Ok, er hermed gjort..
Avatar billede laksen Nybegynder
09. december 2004 - 17:28 #52
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.
Avatar billede 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.. ;-)
Avatar billede 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...
Avatar billede laksen Nybegynder
09. december 2004 - 17:41 #55
Super godt!

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
%>
Avatar billede 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å?
Avatar billede laksen Nybegynder
09. december 2004 - 17:51 #57
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.
Avatar billede 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?
Avatar billede laksen Nybegynder
09. december 2004 - 18:06 #59
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

Noget i den stil i hvert fald.....:D
Avatar billede laksen Nybegynder
09. december 2004 - 18:07 #60
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.
Avatar billede 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...
Avatar billede 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?
Avatar billede spindoktoren Nybegynder
13. december 2004 - 20:40 #63
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 .. :)
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