webForumDet fria alternativet

Varför går det inte????

ASP

49 svar · 820 visningar · startad av Biasse · sida 2 av 3

Frågan, av Biasse

Databasen heter "admin" Tabellen heter "admin" Kolumerna heter: id ,anvname ,passw ,adm ,svip ,vip ,member i adm ,svip ,vip ,member står värderna i följd så här: adm=adm svip=supervip vip=vip member=member - <% Session.TimeOut=120 Set Connect = Server.CreateObject("ADODB.Connection") Set Connect = Server.CreateObject("ADODB.Connection") Connect.Open

Läs frågan i sin helhet →
Medlem sedan aug. 2003480 inlägg
#21

Den som är adm har värdet i varje fält och member bara i menber.

Är jag helt fel ute?

Medlem sedan juni 200032 967 inlägg
#22

Jag förstår inte meningen med det. Jag hade lagt in ett fält, som kan heta UserLevel eller liknande, där du bara markerar vilken nivå man är. Det räcker dessutom utmärkt bara att lagra heltal i ett sådant fält, om du själv bestämmer dig för att 1 är medlem, 2 är vip, 3 är svip och 4 är admin. Det räcker då bra med en sessionsvariabel som innehåller behörigheten.

Medlem sedan aug. 2003480 inlägg
#23

jo jag har försökt det utan att lyckas....

om jag gör ett sånt fält då måste kontroll.asp skrivas om igen och hur styr jag det hela så adm ser allt och sen i stege ner.

Jag är bara glad om det kan bli enklare

Medlem sedan juni 200032 967 inlägg
#24

Biasse skrev:

om jag gör ett sånt fält då måste kontroll.asp skrivas om igen och hur styr jag det hela så adm ser allt och sen i stege ner.

Jo, men det är ett väldigt litet problem. Istället för att kolla om RecSet("adm") innehåller texten adm, så kollar du om den innehåller en 4:a (om det nu är det talet du väljer.), osv.

Dessutom hade jag om jag var du, lagt till lösenordsjämförelsen i SQL-frågan. Det blir mindre kod, och det blir mindre krävande.

Mvh

Medlem sedan aug. 2003480 inlägg
#25

Ok jag är med så långt men en sak förstår jag inte. Om jag loggar in som "4" (adm) hur ska jag då kunna se en sida som är skyddad för inloggning med 2??

Förstår du. Man måste ju formulera skyddet högst upp på en sida så att den kan ses av alla som har högre status än 2

Medlem sedan juni 200032 967 inlägg
#26

Biasse skrev:

Ok jag är med så långt men en sak förstår jag inte. Om jag loggar in som "4" (adm) hur ska jag då kunna se en sida som är skyddad för inloggning med 2??

Enkelt svar med enkel kod:

If Cint(Session("UserLevel")) >=2 Then
     ' Wehoo, användaren har level 2 eller högre!
Else
     ' Nähä :(
End if
Medlem sedan aug. 2003480 inlägg
#27

så här högst upp:

<%If Cint(Session("UserLevel")) >=2 Then
Session("mess") = "Du måste logga in först!"
Response.Redirect "index.asp"
ELSE%>

Medlem sedan juni 200032 967 inlägg
#28

Jepp, det torde räcka alldeles utmärkt.

Fast du får då inte glömma bort att sätta sessionen userlevel till värdet i den nya kolumnen i tabellen, istället för alla andra sessioner du satte tidigare.

Medlem sedan mars 2003772 inlägg
#29

....

Medlem sedan aug. 2003480 inlägg
#30

jepp ... nu ska jag sätta mig ner och scripta på...

Bugar och bockar för era kunskaper. Biasse

Medlem sedan aug. 2003480 inlägg
#31

Om jag har detta på en adm sida:

<%If Cint(Session("UserLevel")) >=4 Then
Session("mess") = "Du måste logga in först!"
Response.Redirect "index.asp"
ELSE%>

Och loggar in på nivå 3 så går det att skriva index2.asp i adress fältet och komma in på den skyddade adm sidan ändå.

Medlem sedan aug. 2003480 inlägg
#32

Ändrade till:

Session("check") = "111okkuk"
Session("passw") = "YtSQ12kuk"
Session("admin") = RecSet("UserLevel")

i kontroll och UserLevel i fältet och fältet(kolumen) i databasen

Medlem sedan juni 200032 967 inlägg
#33

Vad ska du ha session("check") och session("passw") till? De känns onödiga.

Mvh

Medlem sedan aug. 2003480 inlägg
#34

dom är bort nu men ändå återstår problemet med att de som har lägre rang bara kan skriva in url till skyddad sida på högre nivå och se den?

Medlem sedan juni 200032 967 inlägg
#35

Gör du kontrollen överst på varje skyddad sida då?

Medlem sedan mars 20015 287 inlägg
#36
<%
If NOT Cint(Session("UserLevel")) >=4 Then 
Session("mess") = "Du måste logga in först!" 
Response.Redirect "index.asp" 
ELSE
%>

Vänder på det så att säga, samt att detta lär väl hindra även om man inte har en session över huvud taget.

/red. Iofs kan man ju då sätta en End If direkt och ta bort Else samt den End If som kommer längst ner på sidan...

Medlem sedan aug. 2003480 inlägg
#37

Kommer inte in själv med denna fast jag är på nivå 4.

<%
If NOT Cint(Session("UserLevel")) >=4 Then
Session("mess") = "Du måste logga in först!"
Response.Redirect "index.asp"
ELSE
%>

Jag har <%end if%> längst ner.

Medlem sedan mars 20015 287 inlägg
#38

Vad ger en utskrift av din session då?

<% 
response.write Cint(Session("UserLevel")) 
If NOT Cint(Session("UserLevel")) >=4 Then 
Session("mess") = "Du måste logga in först!" 
'Response.Redirect "index.asp" 
ELSE 
%>
Medlem sedan aug. 2003480 inlägg
#39

0 ???? enda som står på index2.asp

Medlem sedan mars 20015 287 inlägg
#40

Då förefaller det ju inte som om det verkligen står 4 i din session...

Vad kallar du din session egentligen? http://www.webforum.nu/showthread.php?s=&postid=707895#post707895

259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)