25. april 2004 - 10:03Der er
18 kommentarer og 1 løsning
redirect til to sider fra en formular
jeg fandt nedenstående login funktion og satte den ind på en hjemmeside og det vorker med små rettelser. jeg har et sp.: jeg skriver password i textfeltet og bliver sendt til en side kun for brugere - fint nok men kan jeg i det samme felt have yderligere et pasword som for andre brugere sender dem til en anden side. altså kan jeg benytte det samme tekstfelt til 2,3 eller flere pasword med forskellige redirect?
Hvis du på hver bruger har en brugerstatus, så kan du sende brugeren til en bestemt side, alt efter hvilken status brugeren har. Select Case ez("brugerstatus") Case 1 videre = "aaah.htm" Case 2 videre = "ohhh.htm" Case Else videre = "iiih.htm" End Select ... else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../databaser/database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') " Set ez = myConn.Execute(strSQL) Session("login") = "yes mate" Response.Redirect videre EZ.Close RS.Close Conn.Close end if ...
Hvis du på hver bruger har en brugerstatus, så kan du sende brugeren til en bestemt side, alt efter hvilken status brugeren har.
... else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../databaser/database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') " Set ez = myConn.Execute(strSQL) Select Case ez("brugerstatus") Case 1 videre = "aaah.htm" Case 2 videre = "ohhh.htm" Case Else videre = "iiih.htm" End Select EZ.Close RS.Close Conn.Close Session("login") = "yes mate" Response.Redirect videre end if ...
en bruger status hvad er det - og ideen er at skrives der eksempelvis abc i textfeltet kommer man til en side eller skriver man cba kommer man til en anden etc. disse password abc/cba riderecter brugeren til forskellige sider - det ligge måske også i dit svar - men du kan evt uddybe
Der er jo ikke meget sikkerhed i et password, hvis flere brugere har det samme, derfor har jeg sat et felt mere på, som f.eks. kunne hedde brugerstatus, men du kan sagtens gøre med et password. Select Case ez("brugerpassword") Case "abc" videre = "aaah.htm" Case "cba" videre = "ohhh.htm" Case Else videre = "iiih.htm" End Select
Ja, det skal ligge i databasen, så må du selv bestemme om det skal være passwordet eller et nyt felt du opretter, der skal bestemme hvilken side brugheren skal vi´dere til
jeg er ikke en haj - men kan til nød sætte enkle funktioner op i asp, men dette er åbenbart mere kompliceret for mig!
jeg kan ikke helt få det til at funke. 1. - min database hedder database, min tabel hedder user her i er der id og username: skal navne ændres her hvis det skel funke. iforhold til dit forslag?2.- dit ("brugerpassword") skal det ændres til ovenstående.?
er nedenstående dit foreslag? <% SET RS = Server.CreateObject("ADODB.Connection") rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/database.mdb")
If Request("mode") = "Check" then
Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function
' Gemmer formfelterne i Variabler strUsername = unQuote(request("username"))
Sql = "Select Count(*) as Found from user where (username = '" & strUsername & "') " Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" error = "Du blev ikke godkendt af systemet" else strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("../databaser/database.mdb") Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open strDSN strSQL = "SELECT * FROM user where (username = '" & Request("username") & "') " Set ez = myConn.Execute(strSQL) Select Case ez("brugerpassword") Case "abc" videre = "aaah.htm" Case "cba" videre = "ohhh.htm" Case Else videre = "iiih.htm" End Select EZ.Close RS.Close Conn.Close Session("login") = "yes mate" Response.Redirect videre end if %>
Du har kun et brugernavn i databasen lige nu. Der er altså ikke noget password. Vil du have et passwordcheck ? eller skal brugeren bare ledes videre alt efter brugernavn ?
yes mate er bare en sessionsvariabel der bliver sat på brugeren, så systemet kan se om brugeren er logget ind. Den kan du bruge til, at se på de enkelte sider, hvor der elleres ikke er adgang til, om man er logget ind. Set denne kode i starten af de sider der er "sikre" If Session("login") <> "yes mate" Then response.redirect("ingenAdgang.htm") End If
jeg har en række billeder i forskellige arkiver/filer, jeg tænker på bare at have én login - altså et textfelt, her kan brugeren skrive sit pasword/username for at blive directed til den side brugeren har fået adgang til. Et pasword/username skal derfor så skrives i databasen for hver side/arkiv der skal kunne åbnes?
Så gør sådan <% SET RS = Server.CreateObject("ADODB.Connection") rs.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../databaser/database.mdb")
If Request("mode") = "Check" then
Function unQuote(strTekst) strTekst = Trim(strTekst) unQuote = Replace(strTekst,"%","53") End Function
' Gemmer formfelterne i Variabler strUsername = unQuote(request("username"))
Sql = "Select Count(*) as Found from user where (username = '" & strUsername & "') " Set LO = RS.Execute(Sql) if LO("Found") = 0 then Session("login") = "" error = "Du blev ikke godkendt af systemet" else Select Case strUsername Case "abc" videre = "aaah.htm" Case "cba" videre = "ohhh.htm" Case Else videre = "iiih.htm" End Select Session("login") = "OK" Response.Redirect videre end if end if RS.Close Conn.Close %> og sæt dette ind i starten af de sikre sider If Session("login") <> "OK" Then response.redirect("ingenAdgang.htm") End If Der skal så IKKE være links på den enkelte sikre side til de andre af de sikre, for så vil brugeren kunne se dem også.
Denne løsning er ikke så sikker, men holder nok til det du skal bruge. Når du har fået det til at virke og du forstår koden bedre, kan du lave det mere sikkert.
det virker tusinde tak - hvad var det jeg skulle fjerne? og jeg måtte nede i min form fjerne i action "../aaah.asp" - skal der stå noget i denne action?
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.