devotionMedlem sedan jan. 20013 582 inlägg Hej :(
Har följande kod för att logga in och därmed anpassa menyer efter behörighetsnivå. Trodde jag fått det att funka....
Men, jag lyckas inte döda sessionen... :(
Någan vänlig själ som orkar titta igenom och se om ni hittar felet. Allt funkar utom själva utloggningen...
Tog bort koden för menyn för att spara plats.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Untitled Document</title>
<link href="../Stylesheet/stylemenuFrame.css" rel="stylesheet" type="text/css">
</head>
<body>
<%
If Request.Querystring("logoff")="yes" Then
Session.Abandon
Response.redirect "menuFrame.asp"
End if
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=IntranetSydostel"
objConn.Open
sUser = replace(Request.Form("User"), "'", "''")
sPassword = Replace(Request.Form("Password"), "'", "''")
blnLoginError = false
if sUser <> "" or sPassword <> "" then
strSQL = "SELECT * FROM tblUser WHERE userName = '" & sUser & "' AND passWord = '" & sPassword & "'"
set objRS = objConn.Execute(strSQL)
If objRS.eof then
blnLoginError = true
else
Session("userId") = objRS("UserId")
Session("Name") = objRS("name")
Session("accessLevel") = objRS("accessLevel")
Response.Write "<span class=""text12px"">Du är inloggad som:</span><br>"
Response.Write "<span class=""statusText"">" & Session("Name") & "</span><br><br>"
'Bestäm behörighetsnivån
select case session("accessLevel")
'Behörighetsnivå 1; Ledning och administratör
Case 1
Response.Write 'meny för behörighet 1
'Behörighetsnivå 2; Installatörer
Case 2
Response.Write 'meny för behörighet 2
End Select
Response.Write "<br><table width=""150"" border=""0"" cellspacing=""0"" cellpadding=""0""><tr><td align=""middle""><a href=""menuFrame.asp?logout=yes"">"&_
"(Logga ut)</a></td></tr></table>"
Session.Timeout = 10
end if
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
end if
if (sUser = "" and sPassword = "") or blnLoginError then
Response.Write "<span class=""text12px"">Du är inloggad som:</span><br>"
Response.Write "<span Class=""statusText"">Ej inloggad!</span><br><br>"
Response.Write 'meny för ej inloggade
Response.Write "<form action=""menuFrame.asp"" method=""post"" name=""logIn""><table class=""tabell"" width=""150"" border=""0"" cellspacing=""4"" cellpadding=""0"">"&_
"<tr><td class=""logIn"">Logga in </td></tr><tr><td class=""userName_passWord"">Användarnamn:</td></tr>"&_
"<tr><td><input name=""User"" type=""text"" class=""formular"" size=""15"" maxlength=""15""></td></tr>"&_
"<tr><td class=""userName_passWord"">Lösenord:</td></tr>"&_
"<tr><td><input name=""passWord"" type=""password"" class=""formular"" size=""15"" maxlength=""15""></td></tr>"&_
"<tr><td><input name=""Submit"" type=""submit"" class=""knapp"" value=""Logga in""></td></tr>"
If blnLoginError then
Response.write "<tr><td class=""userName_passWord_wrong"" colspan=""2"">Felaktigt användarnamn eller lösenord. Försök igen!</td></tr>"
End if
Response.write "</table></form>"
End if
%>
Mvh
@ndersMedlem sedan juni 200032 969 inlägg På vilket sätt fungerar inte utloggningen?
devotionMedlem sedan jan. 20013 582 inlägg session("userId" har fortfarande ett värde...
Däremot så fungerar menyhanteringen perfekt likaså om man skriver fel lösenord
Mvh
flexishMedlem sedan jan. 200548 inlägg Du måste sätta att din session är tom
If Request.Querystring("logoff")="yes" Then
Session("userId") = ""
Session.Abandon
Response.redirect "menuFrame.asp"
End if
mvh
@ndersMedlem sedan juni 200032 969 inlägg
flexish skrev:
Du måste sätta att din session är tom
Nej, det måste man inte. Session.Abandon gör sig av med alla sessionsvariabler för aktuell session.
- - - - - -
Om du använder ett frameset, prova att slänga ut ett javascript som laddar om frameset-sidan istället för att göra en redirect inne i framen;
<script>top.location.href='framesetsidan.asp';</script>
mvh
flexishMedlem sedan jan. 200548 inlägg
Nej, det måste man inte. Session.Abandon gör sig av med alla sessionsvariabler för aktuell session.
Jaha, jag brukar alltid göra det...så är det onödligt att skriva med det?
mvh
@ndersMedlem sedan juni 200032 969 inlägg Ja, det är onödigt.
Session.Abandon gör sig av med allt, men inte förrän sidan har processats klart. Därför brukar jag se till att göra en redirect direkt efter abandon.
http://www.devguru.com/technologies/asp/quickref/session_abandon.html
devotionMedlem sedan jan. 20013 582 inlägg HUr fungerar javascriptet och var ska jag lägga det???
Mvh
@ndersMedlem sedan juni 200032 969 inlägg Släng ut det istället för din redirect direkt efter session.abandon. Lägg sedan en Response.End för att stoppa processandet av asp-kod.
För visst kommer du till rätt ställe i koden, och din redirect utförs?
devotionMedlem sedan jan. 20013 582 inlägg Ja redirercten utförs
var ska response.end ligga
Mvh
@ndersMedlem sedan juni 200032 969 inlägg session.abandon
%>
<script>top.location......
<%
response.end
%>
devotionMedlem sedan jan. 20013 582 inlägg ok, har inte provat än...
Men, varför dödas inte sessionen...
Förstår inte riktigt
@ndersMedlem sedan juni 200032 969 inlägg
devotion skrev:
Men, varför dödas inte sessionen...
Har alltså session("userid") samma värde när du kommer till sidan du redirectas till när du kört abandon?
Låter himskans märkligt.
devotionMedlem sedan jan. 20013 582 inlägg Får det inte att fungera...
Har lagt ut lite response.write session("userId") för att kolla om sessionen finns kvar...
Och det gör den!!! x(
<%
Response.Write session("userId")
If Request.Querystring("logoff")="yes" Then
Session.Abandon
Response.redirect "menuFrame2.asp"
Response.End
End if
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.ConnectionString = "DSN=IntranetSydostel"
objConn.Open
sUser = replace(Request.Form("User"), "'", "''")
sPassword = Replace(Request.Form("Password"), "'", "''")
blnLoginError = false
if sUser <> "" or sPassword <> "" then
strSQL = "SELECT * FROM tblUser WHERE userName = '" & sUser & "' AND passWord = '" & sPassword & "'"
set objRS = objConn.Execute(strSQL)
If objRS.eof then
blnLoginError = true
else
Session("userId") = objRS("UserId")
Session("Name") = objRS("name")
Session("accessLevel") = objRS("accessLevel")
Response.Write "<span class=""text12px"">Du är inloggad som:</span><br>"
Response.Write "<span class=""statusText"">" & Session("Name") & "</span><br><br>"
'Bestäm behörighetsnivån
select case session("accessLevel")
'Behörighetsnivå 1; Ledning och administratör
Case 1
Response.Write session("userId") & "<br>"
Response.Write ("meny 1")
'Behörighetsnivå 2; Installatörer
Case 2
Response.Write session("userId") & "<br>"
Response.Write ("meny2")
End Select
Response.Write "<br><table width=""150"" border=""0"" cellspacing=""0"" cellpadding=""0""><tr><td align=""middle""><a href=""menuFrame2.asp?logout=yes"">"&_
"(Logga ut)</a></td></tr></table>"
Session.Timeout = 10
end if
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
end if
if (sUser = "" and sPassword = "") or blnLoginError then
Response.Write "<span class=""text12px"">Du är inloggad som:</span><br>"
Response.Write "<span Class=""statusText"">Ej inloggad!</span><br><br>"
Response.Write ("meny ej inloggad")
Response.Write "<form action=""menuFrame2.asp"" method=""post"" name=""logIn""><table class=""tabell"" width=""150"" border=""0"" cellspacing=""4"" cellpadding=""0"">"&_
"<tr><td class=""logIn"">Logga in </td></tr><tr><td class=""userName_passWord"">Användarnamn:</td></tr>"&_
"<tr><td><input name=""User"" type=""text"" class=""formular"" size=""15"" maxlength=""15""></td></tr>"&_
"<tr><td class=""userName_passWord"">Lösenord:</td></tr>"&_
"<tr><td><input name=""passWord"" type=""password"" class=""formular"" size=""15"" maxlength=""15""></td></tr>"&_
"<tr><td><input name=""Submit"" type=""submit"" class=""knapp"" value=""Logga in""></td></tr>"
If blnLoginError then
Response.write "<tr><td class=""userName_passWord_wrong"" colspan=""2"">Felaktigt användarnamn eller lösenord. Försök igen!</td></tr>"
End if
Response.write "</table></form>"
End if
%>
Help me!!!
mvh
@ndersMedlem sedan juni 200032 969 inlägg Och inte blev det någon skillnad med javascriptet istället för response.redirect?
@ndersMedlem sedan juni 200032 969 inlägg Om du skickar mig hela klabbet (alla filerna alltså) ska jag se om jag kan se något knas.
Mvh