[ASP] Session variabele wordt niet doorgegeven?

Pagina: 1
Acties:

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Hoi allemaal!
Ik heb ff de search gebruikt maar ik kon mijn probleem niet vinden.
Ik heb de volgende login-pagina gemaakt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<!-- #include file="../Adovbs.inc" -->
<% Response.Buffer = true

  If Request.Form("btnLogin") = "Login" AND Request.Form("txtUsername") <> "" AND Request.Form("txtPassword") <> "" Then
  
    Dim strUsername, strPassword
  
    strUsername=Request.Form("txtUsername")
    strPassword=Request.Form("txtPassword")
%>
<!-- Open de database connectie //-->
<!--#include file="asp/dbConn.asp"-->
<%
    SQL = "SELECT * FROM GEBRUIKERS"
  
    If Request.Form("txtUsername") <> "" Then
    SQL = "SELECT * from GEBRUIKERS WHERE USERNAME = '" & strUsername & "' AND PASSWORD = '" & strPassword & "'"
    End If
  
    oRS.Open SQL, oConn, adOpenForwardOnly, adLockPessimistic
  
    If Not oRS.EOF Then
    Session("UserLevel") = 1
    Else
    'de gebruiker is niet herkend en wordt dus terug opnieuw naar de login pagina gebracht
    Response.Redirect "login.asp"
    End If
  End If
%>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>IT Logic Cistem</title>
<link rel="stylesheet" href="css/cistem.css">
</head>
<body>
  <h1>
    <font face="Arial">Toegang tot beveiligd gedeelte</font> 
  </h1>
  <form method="POST" action="frameindex.asp">
    <% 
    If Session("UserLevel") > 0 AND Request.Form("btnLogin") = "Login" AND Request.Form("txtUsername") <> "" _ 
      AND Request.Form("txtPassword") <> ""  Then
      
      Response.Write("<B>" & Request.Form("txtUsername"))
      Response.Write("</B> is logged on.")
      Response.Write("User Access Level: ")
      Response.Write(Session("UserLevel") & "<br>")
    End If
    %>
  <table border="0" cellspacing="3" cellpadding="2" bordercolorlight="#FFFFFF" bordercolordark="#CCCCCC">
    <tr>
    <td>
      Gebruikersnaam: 
    </td>
    <td>
      <input type="text" name="txtUsername" size="40">
    </td>
    </tr>
    <tr>
    <td>
      Wachtwoord: 
    </td>
    <td>
      <input type="password" name="txtPassword" size="20" value="">
    </td>
    </tr>
  </table>
  <p>
  <input type="submit" name="btnLogin" value="Login">
</form>
</body>
</html>

Dat werkt allemaal perfect!
Als ik bij deze pagina controleer op session, dan vindt ie dat mijn Session("UserLevel")=1 (zo hoort het)

Maar als ik nu in een frame in de frameindex.asp (waar de form normaal naar wijst) de volgende code zet:
code:
1
2
3
4
5
6
7
  <%
    If Session("UserLevel") = 1 Then
    Response.Write ("Joepie!")
    Else 
    Response.Write ("Fout!")
    End If
  %>

dan geeft ie elke keer als antwoord: Fout!
(ik wil namelijk op elke pagina ff checken of je sessie wel echt 1 is, zodat ik kan zien of iemand netjes is ingelogd of niet)

Dus op de 1 of andere manier wordt session dus toch niet doorgegeven. :?

Ik heb de cookies ingeschakeld!
Zowel in IE6 als IE5.x werkt het niet. |:( :?

Ohjah voor de info voeg ik nog wel ff de global.asa toe voor het geval dat jullie willen weten wat er in staat.

Global.asa
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<OBJECT RUNAT=Server SCOPE=Session ID=MyInfo PROGID="MSWC.MyInfo">
</OBJECT>
<OBJECT RUNAT=Server SCOPE=Session ID=oConn PROGID="ADODB.Connection">
</OBJECT>
<OBJECT RUNAT=Server SCOPE=Session ID=oRS PROGID="ADODB.RecordSet">
</OBJECT>
<SCRIPT LANGUAGE=VBScript RUNAT=Server>

Sub Session_OnStart
      Session("UserLevel")=0    '0=niet(goed)ingelogd, 1=wel(goed)ingelogd
      Set Session("oConn") = oConn
    Set Session("oRS") = oRS
    startPage = "default.asp"
    currentPage = Request.ServerVariables("SCRIPT_NAME")
    if strcomp(currentPage,startPage,1) then
      Response.Redirect(startPage)
      end if
End Sub

Sub Session_OnEnd 

     Set oConn=Nothing
End Sub
</SCRIPT>

Het kan dus zijn dat ik misschien wel iets ongelooflijk knulligs fout doe, maar ik zie het na 2 dagen turen en proberen echt niet meer! Ik hoop dat jullie me kunnen helpen!

BVD!

- Ruud


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Zit je eerste pagina in een frame? Geeft vaak gezeik, gebruik van frames is zowiezo sux, gebruik gewoon includes werkt mooier en is net zo snel.

Oja, je hoeft niet bij elke topic te groeten, te vermelden dat je de search hebt gebruikt en bij voorbaat te danken.

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
Op woensdag 14 november 2001 11:52 schreef raptorix het volgende:
Zit je eerste pagina in een frame? Geeft vaak gezeik, gebruik van frames is zowiezo sux, gebruik gewoon includes werkt mooier en is net zo snel.

Oja, je hoeft niet bij elke topic te groeten, te vermelden dat je de search hebt gebruikt en bij voorbaat te danken.
Heh ik heb die dingen over groeten doorgelezen, ik had er ff niet aangedacht tijdens het posten, mijn EXCUSES (of hoef ik die ook niet aan te bieden? >:) )
edit:
+ ik wilde me indekken tegen UTFS!! reacties etc.


Nope, het bovenste stukje code is gewoon de gehele pagina en zoals je ziet geen frameset. :)
Is ook geen onderdeel van een frameset i.o.d. maar het verwijst wel naar een frameindex.asp

- Ruud


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Ik denk toch dat oorzaak het frame is, heb dit vaker gehoord dat het problemen geeft.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

En als je i.p.v. de check op de sessie var gewoon even de inhoudprint?
Eventueel loopje als in For Each item In Session.Contents, print Session(item).
Dan kun je iig zien wat je in je sessie onthoudt.
't Zal me nl. op zich niet verbazen als er wel een waarde instaat, maar dat deze "1" is (1 als string dus), en dan vergelijken met 1 (getalletje dus) gaat vaak niet goed (bij mij iig nooit en daarom converteer ik altijd expliciet in m'n vergelijking naar int of string).

Exact expert nodig?


Verwijderd

In IE6 staat "allow session cookies" standaard gedisabled. Dit staat bij internet options onder privacy --> advanced, misschien helpt dit.

Verwijderd

En als je de pagina's direct laat expiren?
code:
1
Response.Expires = -1

  • Zaagmans
  • Registratie: Januari 2000
  • Laatst online: 16-07 21:13
dank voor de reacties het was idd de session cookie die nog uitstond |:(

stoepid van me!

- Ruud


Verwijderd

Op donderdag 15 november 2001 15:27 schreef Zaagmans het volgende:
dank voor de reacties het was idd de session cookie die nog uitstond |:(

stoepid van me!
Jep en je weet nu ook dat jantje-met-de-pet op die geen verstand heeft van msie6 laat staan privacy zn cookies en sessies niet aan zet, (weet hij niet eens), dus zal jou script niet altijd ok draaien.
Pagina: 1