webForumDet fria alternativet

Utloggningsproblem

27 svar · 688 visningar · startad av devotion

devotionMedlem sedan jan. 20013 582 inlägg
#1

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
#2

På vilket sätt fungerar inte utloggningen?

devotionMedlem sedan jan. 20013 582 inlägg
#3

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
#4

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
#5

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
#6

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
#7

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
#8

HUr fungerar javascriptet och var ska jag lägga det???

Mvh

@ndersMedlem sedan juni 200032 969 inlägg
#9

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
#10

Ja redirercten utförs

var ska response.end ligga

Mvh

@ndersMedlem sedan juni 200032 969 inlägg
#11
session.abandon
%>
<script>top.location......
<%
response.end
%>
devotionMedlem sedan jan. 20013 582 inlägg
#12

ok, har inte provat än...

Men, varför dödas inte sessionen...
Förstår inte riktigt

@ndersMedlem sedan juni 200032 969 inlägg
#13

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
#14

Jo, den har det...

Mvh

devotionMedlem sedan jan. 20013 582 inlägg
#15

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
#16

Och inte blev det någon skillnad med javascriptet istället för response.redirect?

devotionMedlem sedan jan. 20013 582 inlägg
#17

Nope!
Hänger kvar i a f

Mvh

devotionMedlem sedan jan. 20013 582 inlägg
#18

Please, help me......

Mvh

@ndersMedlem sedan juni 200032 969 inlägg
#19

Om du skickar mig hela klabbet (alla filerna alltså) ska jag se om jag kan se något knas.

Mvh

devotionMedlem sedan jan. 20013 582 inlägg
#20

kommer på posten...

Mvh

144 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
142 ms — hämta tråd, inlägg och bilagor (db)