Använder Gruvsjös loginmulti där man som användare loggar in på en sida (admin.asp) och kan läsa om allsjöns smått och gott som användare.
Men om jag lägger dit en länk som länkar till en annan sida (historia.asp) så går ju den sidan att nås av obehörig.
Hur skriver jag ett script till historia.asp för att kontrollera att man fortfarande är inloggad via admin.asp och att man skickas vidare till ejmedlem.asp om man försöker nå sidan utan att logga in?
Tyvärr är jag urdålig på ASP (använder bara färdiga script) så jag behöver färdig kod.
Tacksam för alla tips
Sylvia
<%Response.Buffer = "True"
Session.lcid = 1053
Admin1 = "admin"
Admin2 = "admin"
db = Server.MapPath("db/databas.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.Recordset")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & db
If Request.Querystring("losen") = "nej" Then
mess = "alert('Fel lösenord!');return true;"
End If
If Request.Querystring("anv") = "nej" Then
mess = "alert('Användaren finns inte!');return true;"
End If
If Request.Querystring("user") = "ja" Then
mess = "alert('Ny användare är nu tillagd!');return true;"
End If
If Request.Querystring("andrauser") = "ja" Then
mess = "alert('Användaren är nu ändrad!');return true;"
End If
If Request.Querystring("deluser") = "ja" Then
mess = "alert('Användaren är nu borttagen!');return true;"
End If
If Request.Querystring("busy") = "ja" Then
mess = "alert('Användarnamnet är upptaget!');return true;"
End If%>
<html>
<head>
<title>Login multi</title>
<link rel="stylesheet" href="stil.css" type="text/css">
<script src="js/js.js"></script>
</head>
<body bgcolor="#f0f0f0" OnLoad="<%=mess%>">
<%If Request.Querystring("visa")="" Then%>
<table width="400">
<tr>
<td colspan="2"><b>Logga in!</b></td>
</tr>
<tr>
<td colspan="2"><img src="bilder/dot1.gif"></td>
</tr>
<form name="loggain" method="post" action="admin.asp?visa=check">
<tr>
<td>Anvnamn:</td><td><input type="text" name="admin1" size="35" value="<%=Request.Cookies("user") %>"></td>
</tr>
<tr>
<td>Lösenord:</td><td><input type="password" name="admin2" size="35"></td>
</tr>
<tr>
<td>Typ av inloggning:</td>
<td>
<select name="val" style="width:95">
<option value="admin">Admin
<option value="users">Användare
</select>
</td>
</tr>
<tr>
<td colspan="2"><img src="bilder/dot1.gif"></td>
</tr>
<tr>
<td> </td><td><input type="submit" value="Logga in"></td>
</tr>
</form>
</table>
<%End If
'############################################################################################################
'-----------------------------------KOLLAR VILKEN SORTS INLOGGNING MAN ANVÄNT OCH SKICKAR DIG VIDARE----------------------------------------------
'############################################################################################################
If Request.Querystring("visa")="check" Then
If Request.Form("val") = "admin" Then
If Request.Form("admin1") = Admin1 AND Request.Form("admin2") = Admin2 Then
admin="ok"
Else
Response.Redirect "admin.asp?losen=nej"
End If
If admin="ok" Then
Session("admin") = "ok"
Session("user") = Request.Form("admin1")
Session.TimeOut = 40
Response.Redirect "admin.asp?visa=inne"
End If
ElseIf Request.Form("val") = "users" Then
Set RecSet=Conn.Execute("Select * From users where anvnamn='" & Request.Form("admin1") & "'")
Response.Cookies("user") = Request.Form("user")
If Not RecSet.EOF Then
If Request.Form("admin2") = RecSet("losen") Then
login="ok"
Else
Response.Redirect "admin.asp?losen=nej"
End If
Else
Response.Redirect "admin.asp?anv=nej"
End If
If login="ok" Then
Session("login") = "ok"
Session("user") = Request.Form("admin1")
Session.TimeOut = 40
Response.Redirect "admin.asp?visa=inne&user=" & Request.Form("admin1")
End If
End If
End If
'############################################################################################################
'-------------------INLOGGAD OCH HÄR KAN MAN LADDA UPP OCH LÄGGA TILL, ÄNDRA OCH TA BORT BILDER OCH ANVÄNDARE------------------------------
'############################################################################################################
If Request.Querystring("visa")= "inne" And Session("admin") = "ok" Then%>
<table width="400">
<tr>
<td><b><a href="admin.asp?visa=users">Användare</a> <a href="javascript:Logut('admin.asp?visa=logut')">Logga ut</a></b></td>
</tr>
<tr>
<td>Inloggad som admin</td>
</tr>
</table>
<%End If
If Request.Querystring("visa")= "inne" And Session("login") = "ok" Then%>
<table width="400">
<tr>
<td><b><a href="javascript:Logut('admin.asp?visa=logut')">Logga ut</a></b></td>
</tr>
<tr>
<td>Inloggad som användare</td>
</tr>
</table>
<%End If
Du har delen längst ner på koden som kollar om du är inloggad. Har inte gått igenom koden till fullo men Session("login") = "ok" kollar om Sessionen för inloggningen är skapad.
Dvs på historia.asp kan du ha en koll likt den i slutet av koden:
If Session("login") = "ok" Then%>
<table width="400">
<tr>
<td><b><a href="java script:Logut('admin.asp?visa=logut')">Logga ut</a></b></td>
</tr>
<tr>
<td>Inloggad som användare</td>
</tr>
</table>
<%
else
%>
Du är inte inloggat, alternativt skicka användaren till en annan sida.
<%
end if
%>
Nu har jag (med hjälp ovan) gjort en kodsnutt till "historia.asp" men det fungerar inte riktigt ändå.
Nedan script skickar iväg en obehörig som hamnar på "historia.asp" (avsiktligt eller oavsiktligt) till "ejmedlem.asp" så det blir helt ok :)
MEN som inloggad via "admin.asp" och när man klickar på länken historia skickas man OCKSÅ till "ejmedlem.asp och det var ju verkligen inte meningen eftersom den inloggade medlemmen SKA ha tillgång till "historia.asp" :(
Suck, jag lär mig aldrig det här...
Tacksam för rättelse i koden nedan
Dessutom vore det ju bra om det finns en "logout"-länk överst på sidan "historia.asp" och den syns inte :r
Sylvia
<%
If Session("login") = "ok" Then%>
<table width="400">
<tr>
<td><b><a href="java script:Logut('admin.asp?visa=logut')">Logga ut</a></b></td>
</tr>
<tr>
<td>Inloggad som användare</td>
</tr>
</table>
<%
else
%>
Du är inte inloggad
<%
end if
%>
<%if Session("uid")="" then
response.redirect "ejmedlem.asp"
end if
%>
Jag har inte satt någon session, det var något som jag sökte mig till och hittade på forumet bara som jag testade :)
Din variant på kod ger:
om en obehörig går in på sidan redirektas den till "ejmedlem.asp"
MEN om man loggar in och klickar på länken historia.asp
så hittas inte sidan...?
Koden nedan (nytt försök) ger resultatet jag vill ha
att obehörig slussas vidare till "ejmedlem.asp" och behörig stannar kvar med möjlighet att logga ur med länk längst upp på sidan.
<%
If Session("login") = "ok" Then%>
<table width="400">
<tr>
<td><b><a href="java script:Logut('historia.asp?visa=logut')">Logga ut</a></b></td>
</tr>
<tr>
<td>Inloggad som användare</td>
</tr>
</table>
<%
else
%>
<%if Session("uid")="" then
response.redirect "ejmedlem.asp"
end if
%>
<%
end if
%>
dock så fungerar inte logut-länken som den ska x(
och har ingen aning om varför
längst ner på sidan har jag en aspkodsnutt för logout
<%
If Request.QueryString("visa") = "logut" Then
Session.Abandon
Response.Redirect "admin.asp"
End If%>
<%
If Request.QueryString("visa") = "logut" Then
Session.Abandon
Response.Redirect "utloggad.asp" 'skickar besökaren till utloggad.asp då man klickat på logga ut
End If
If Session("login") = "ok" Then%>
<table width="400">
<tr>
<td><b><a href="historia.asp?visa=logut">Logga ut</a></b></td>
</tr>
<tr>
<td>Inloggad som användare</td>
</tr>
</table>
<%
else
response.redirect "ejmedlem.asp" ' obehörig skickas till ejmedlem.asp
end if
%>
Nu tror jag att det fungerar!
Noterade inte att du lagt dit "utloggad.asp" och skrev in admin.asp och blev skickad till inloggningssidan i stället....
Nu ska jag testköra lite och återkommer
Tack!
264 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9