24. december 2003 - 02:15Der er
17 kommentarer og 1 løsning
sessions spm.
jeg har dette til et login system:
<% if Session("name") = "" then Response.Redirect("login.asp") else %>
det virker perfekt har så bare lige udvidet det med et felt i min tabel så det bliver lidt niveau ind delt på nogle af siderne.
feltet hedder UserNiveau og det kan være administrator, prouser eller user.
mit spm er nu om man kan lave en AND i en sessions evt som dette:
<% if Session("name") = "" and Session("UserNiveau") <> "administrator" or session("UserNiveau") = "prouser" or Session("UserId") = "" then Response.Redirect("login.asp") else %>
så den kigger på ens logind navn og hvilket Niveau man er på så den ikke logger brugerer af "user" niveau ind på den side hvor code evt kan være hvor kun administrator og prouser profiler må komme ind !!
Ja jeg har selv haft gjordt det på den måde, dog delte jeg op i flere if-sætninger, så først tjekkes om man er logget ind og så bagefter hvilket niveau man er på, det virker helt perfekt
if Session("name") = "" and Session("UserNiveau") <> "administrator" or session("UserNiveau") = "prouser" or Session("UserId") = "" then
Du kan sætte () omrking or ledne og se om det ikke er sådan det skal være??:
if Session("name") = "" and (Session("UserNiveau") <> "administrator" or session("UserNiveau") = "prouser" or Session("UserId") = "") then
Du skal også huske at if på tekst er casesenativ så "administrator" er ikke lig "Administrator".
Det med AND og OR kan man huske hvis man tænker lidt på matematik og * er AND og + er OR der er det heller ikke lige meget hvordan man skriver det: 4*2+1 = 9 4*(2+1) = 12
okay jeg har brugt din sidste linje Eagleeye og logget på med en user Niv. konto og den bliver alligevel logget ind på statssite.asp hvilket den ikke skulle !! Hvordan kan jeg gøre så det kun er admins og poruser det kommer ind på denne side !?
if uid = "" then Response.redirect("error/empty.asp") if pass = "" then Response.Redirect("error/empty.asp")
set conn = server.CreateObject ("ADODB.Connection") conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & server.MapPath ("include/db/userinfo.mdb") set rs = server.CreateObject ("ADODB.Recordset") rs.Open "SELECT * FROM userdatabase where UserNick='"& uid &"'", conn, 1
If rs.recordcount = 0 then rs.close conn.close set rs=nothing set conn=nothing Response.Redirect("login_id.asp") end if
if rs("UserPassword") = pass then Session("name") = rs("UserNick") rs.Close conn.Close set rs=nothing set conn=nothing Response.Redirect("statesite.asp")
else rs.Close conn.Close set rs=nothing set conn=nothing Response.Redirect("login_pw.asp") end if
%>
den side sendes man til når man logger på og derefter sender den en til statesite.asp hvis man er logget på rigtigt.
men skal jeg evt bruge denne statesite.asp til alle brugerer og så de sider hvor kun admins og prouser kontoer skal kunne komme på der evt bruge dette og glemme session name:
if Session("UserNiveau") <> "administrator" or session("UserNiveau") = "prouser" or Session("UserId") = "" then Response.Redirect("noacces.asp") else
if rs("UserPassword") = pass then Session("name") = rs("UserNick") Session("UserNiveau") = rs("UserNiveau") rs.Close conn.Close set rs=nothing set conn=nothing Response.Redirect("statesite.asp")
ja det gjorder jeg lige og så satte jeg dette ind på statssite.asp
<% if Session("name") = "" or Session("niv") = "user" then Response.Redirect("login.asp") else %>
og så virker det !!
men lige en lille ting kan jeg dele
<% if Session("name") = "" or Session("niv") = "user" then Response.Redirect("login.asp") else %>
op så hvis name = "" så sender den mig til login.asp og hvis niv = "user" så sender den mig til noaccess.asp og else som den gør nu.
og ANG. Session("niv") = "user" hvis jeg vil have at prouser ikke skal kunne komme på siden også kan jeg så lave denne sessions til Session("niv") = "user,prosuser" !?? lægger lige flere P på hvis det er og så læg venligst et svar !!
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.